xref: /freebsd/contrib/unbound/util/configlexer.c (revision b7c0c8c1)
1 #include "config.h"
2 #include "util/configyyrename.h"
3 
4 #line 2 "<stdout>"
5 
6 #define  YY_INT_ALIGNED short int
7 
8 /* A lexical scanner generated by flex */
9 
10 #define FLEX_SCANNER
11 #define YY_FLEX_MAJOR_VERSION 2
12 #define YY_FLEX_MINOR_VERSION 6
13 #define YY_FLEX_SUBMINOR_VERSION 4
14 #if YY_FLEX_SUBMINOR_VERSION > 0
15 #define FLEX_BETA
16 #endif
17 
18 /* First, we deal with  platform-specific or compiler-specific issues. */
19 
20 /* begin standard C headers. */
21 #include <stdio.h>
22 #include <string.h>
23 #include <errno.h>
24 #include <stdlib.h>
25 
26 /* end standard C headers. */
27 
28 /* flex integer type definitions */
29 
30 #ifndef FLEXINT_H
31 #define FLEXINT_H
32 
33 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
34 
35 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
36 
37 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
38  * if you want the limit (max/min) macros for int types.
39  */
40 #ifndef __STDC_LIMIT_MACROS
41 #define __STDC_LIMIT_MACROS 1
42 #endif
43 
44 #include <inttypes.h>
45 typedef int8_t flex_int8_t;
46 typedef uint8_t flex_uint8_t;
47 typedef int16_t flex_int16_t;
48 typedef uint16_t flex_uint16_t;
49 typedef int32_t flex_int32_t;
50 typedef uint32_t flex_uint32_t;
51 #else
52 typedef signed char flex_int8_t;
53 typedef short int flex_int16_t;
54 typedef int flex_int32_t;
55 typedef unsigned char flex_uint8_t;
56 typedef unsigned short int flex_uint16_t;
57 typedef unsigned int flex_uint32_t;
58 
59 /* Limits of integral types. */
60 #ifndef INT8_MIN
61 #define INT8_MIN               (-128)
62 #endif
63 #ifndef INT16_MIN
64 #define INT16_MIN              (-32767-1)
65 #endif
66 #ifndef INT32_MIN
67 #define INT32_MIN              (-2147483647-1)
68 #endif
69 #ifndef INT8_MAX
70 #define INT8_MAX               (127)
71 #endif
72 #ifndef INT16_MAX
73 #define INT16_MAX              (32767)
74 #endif
75 #ifndef INT32_MAX
76 #define INT32_MAX              (2147483647)
77 #endif
78 #ifndef UINT8_MAX
79 #define UINT8_MAX              (255U)
80 #endif
81 #ifndef UINT16_MAX
82 #define UINT16_MAX             (65535U)
83 #endif
84 #ifndef UINT32_MAX
85 #define UINT32_MAX             (4294967295U)
86 #endif
87 
88 #ifndef SIZE_MAX
89 #define SIZE_MAX               (~(size_t)0)
90 #endif
91 
92 #endif /* ! C99 */
93 
94 #endif /* ! FLEXINT_H */
95 
96 /* begin standard C++ headers. */
97 
98 /* TODO: this is always defined, so inline it */
99 #define yyconst const
100 
101 #if defined(__GNUC__) && __GNUC__ >= 3
102 #define yynoreturn __attribute__((__noreturn__))
103 #else
104 #define yynoreturn
105 #endif
106 
107 /* Returned upon end-of-file. */
108 #define YY_NULL 0
109 
110 /* Promotes a possibly negative, possibly signed char to an
111  *   integer in range [0..255] for use as an array index.
112  */
113 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
114 
115 /* Enter a start condition.  This macro really ought to take a parameter,
116  * but we do it the disgusting crufty way forced on us by the ()-less
117  * definition of BEGIN.
118  */
119 #define BEGIN (yy_start) = 1 + 2 *
120 /* Translate the current start state into a value that can be later handed
121  * to BEGIN to return to the state.  The YYSTATE alias is for lex
122  * compatibility.
123  */
124 #define YY_START (((yy_start) - 1) / 2)
125 #define YYSTATE YY_START
126 /* Action number for EOF rule of a given start state. */
127 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
128 /* Special action meaning "start processing a new file". */
129 #define YY_NEW_FILE yyrestart( yyin  )
130 #define YY_END_OF_BUFFER_CHAR 0
131 
132 /* Size of default input buffer. */
133 #ifndef YY_BUF_SIZE
134 #ifdef __ia64__
135 /* On IA-64, the buffer size is 16k, not 8k.
136  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
137  * Ditto for the __ia64__ case accordingly.
138  */
139 #define YY_BUF_SIZE 32768
140 #else
141 #define YY_BUF_SIZE 16384
142 #endif /* __ia64__ */
143 #endif
144 
145 /* The state buf must be large enough to hold one state per character in the main buffer.
146  */
147 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
148 
149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
150 #define YY_TYPEDEF_YY_BUFFER_STATE
151 typedef struct yy_buffer_state *YY_BUFFER_STATE;
152 #endif
153 
154 #ifndef YY_TYPEDEF_YY_SIZE_T
155 #define YY_TYPEDEF_YY_SIZE_T
156 typedef size_t yy_size_t;
157 #endif
158 
159 extern int yyleng;
160 
161 extern FILE *yyin, *yyout;
162 
163 #define EOB_ACT_CONTINUE_SCAN 0
164 #define EOB_ACT_END_OF_FILE 1
165 #define EOB_ACT_LAST_MATCH 2
166 
167     #define YY_LESS_LINENO(n)
168     #define YY_LINENO_REWIND_TO(ptr)
169 
170 /* Return all but the first "n" matched characters back to the input stream. */
171 #define yyless(n) \
172 	do \
173 		{ \
174 		/* Undo effects of setting up yytext. */ \
175         int yyless_macro_arg = (n); \
176         YY_LESS_LINENO(yyless_macro_arg);\
177 		*yy_cp = (yy_hold_char); \
178 		YY_RESTORE_YY_MORE_OFFSET \
179 		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
180 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
181 		} \
182 	while ( 0 )
183 #define unput(c) yyunput( c, (yytext_ptr)  )
184 
185 #ifndef YY_STRUCT_YY_BUFFER_STATE
186 #define YY_STRUCT_YY_BUFFER_STATE
187 struct yy_buffer_state
188 	{
189 	FILE *yy_input_file;
190 
191 	char *yy_ch_buf;		/* input buffer */
192 	char *yy_buf_pos;		/* current position in input buffer */
193 
194 	/* Size of input buffer in bytes, not including room for EOB
195 	 * characters.
196 	 */
197 	int yy_buf_size;
198 
199 	/* Number of characters read into yy_ch_buf, not including EOB
200 	 * characters.
201 	 */
202 	int yy_n_chars;
203 
204 	/* Whether we "own" the buffer - i.e., we know we created it,
205 	 * and can realloc() it to grow it, and should free() it to
206 	 * delete it.
207 	 */
208 	int yy_is_our_buffer;
209 
210 	/* Whether this is an "interactive" input source; if so, and
211 	 * if we're using stdio for input, then we want to use getc()
212 	 * instead of fread(), to make sure we stop fetching input after
213 	 * each newline.
214 	 */
215 	int yy_is_interactive;
216 
217 	/* Whether we're considered to be at the beginning of a line.
218 	 * If so, '^' rules will be active on the next match, otherwise
219 	 * not.
220 	 */
221 	int yy_at_bol;
222 
223     int yy_bs_lineno; /**< The line count. */
224     int yy_bs_column; /**< The column count. */
225 
226 	/* Whether to try to fill the input buffer when we reach the
227 	 * end of it.
228 	 */
229 	int yy_fill_buffer;
230 
231 	int yy_buffer_status;
232 
233 #define YY_BUFFER_NEW 0
234 #define YY_BUFFER_NORMAL 1
235 	/* When an EOF's been seen but there's still some text to process
236 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
237 	 * shouldn't try reading from the input source any more.  We might
238 	 * still have a bunch of tokens to match, though, because of
239 	 * possible backing-up.
240 	 *
241 	 * When we actually see the EOF, we change the status to "new"
242 	 * (via yyrestart()), so that the user can continue scanning by
243 	 * just pointing yyin at a new input file.
244 	 */
245 #define YY_BUFFER_EOF_PENDING 2
246 
247 	};
248 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
249 
250 /* Stack of input buffers. */
251 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
252 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
253 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
254 
255 /* We provide macros for accessing buffer states in case in the
256  * future we want to put the buffer states in a more general
257  * "scanner state".
258  *
259  * Returns the top of the stack, or NULL.
260  */
261 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
262                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
263                           : NULL)
264 /* Same as previous macro, but useful when we know that the buffer stack is not
265  * NULL or when we need an lvalue. For internal use only.
266  */
267 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
268 
269 /* yy_hold_char holds the character lost when yytext is formed. */
270 static char yy_hold_char;
271 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
272 int yyleng;
273 
274 /* Points to current character in buffer. */
275 static char *yy_c_buf_p = NULL;
276 static int yy_init = 0;		/* whether we need to initialize */
277 static int yy_start = 0;	/* start state number */
278 
279 /* Flag which is used to allow yywrap()'s to do buffer switches
280  * instead of setting up a fresh yyin.  A bit of a hack ...
281  */
282 static int yy_did_buffer_switch_on_eof;
283 
284 void yyrestart ( FILE *input_file  );
285 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
286 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
287 void yy_delete_buffer ( YY_BUFFER_STATE b  );
288 void yy_flush_buffer ( YY_BUFFER_STATE b  );
289 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
290 void yypop_buffer_state ( void );
291 
292 static void yyensure_buffer_stack ( void );
293 static void yy_load_buffer_state ( void );
294 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
295 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
296 
297 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
298 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
299 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
300 
301 void *yyalloc ( yy_size_t  );
302 void *yyrealloc ( void *, yy_size_t  );
303 void yyfree ( void *  );
304 
305 #define yy_new_buffer yy_create_buffer
306 #define yy_set_interactive(is_interactive) \
307 	{ \
308 	if ( ! YY_CURRENT_BUFFER ){ \
309         yyensure_buffer_stack (); \
310 		YY_CURRENT_BUFFER_LVALUE =    \
311             yy_create_buffer( yyin, YY_BUF_SIZE ); \
312 	} \
313 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
314 	}
315 #define yy_set_bol(at_bol) \
316 	{ \
317 	if ( ! YY_CURRENT_BUFFER ){\
318         yyensure_buffer_stack (); \
319 		YY_CURRENT_BUFFER_LVALUE =    \
320             yy_create_buffer( yyin, YY_BUF_SIZE ); \
321 	} \
322 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
323 	}
324 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
325 
326 /* Begin user sect3 */
327 typedef flex_uint8_t YY_CHAR;
328 
329 FILE *yyin = NULL, *yyout = NULL;
330 
331 typedef int yy_state_type;
332 
333 extern int yylineno;
334 int yylineno = 1;
335 
336 extern char *yytext;
337 #ifdef yytext_ptr
338 #undef yytext_ptr
339 #endif
340 #define yytext_ptr yytext
341 
342 static yy_state_type yy_get_previous_state ( void );
343 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
344 static int yy_get_next_buffer ( void );
345 static void yynoreturn yy_fatal_error ( const char* msg  );
346 
347 /* Done after the current pattern has been matched and before the
348  * corresponding action - sets up yytext.
349  */
350 #define YY_DO_BEFORE_ACTION \
351 	(yytext_ptr) = yy_bp; \
352 	(yytext_ptr) -= (yy_more_len); \
353 	yyleng = (int) (yy_cp - (yytext_ptr)); \
354 	(yy_hold_char) = *yy_cp; \
355 	*yy_cp = '\0'; \
356 	(yy_c_buf_p) = yy_cp;
357 #define YY_NUM_RULES 385
358 #define YY_END_OF_BUFFER 386
359 /* This struct is not used in this scanner,
360    but its presence is necessary. */
361 struct yy_trans_info
362 	{
363 	flex_int32_t yy_verify;
364 	flex_int32_t yy_nxt;
365 	};
366 static const flex_int16_t yy_accept[3816] =
367     {   0,
368         1,    1,  359,  359,  363,  363,  367,  367,  371,  371,
369         1,    1,  375,  375,  379,  379,  386,  383,    1,  357,
370       357,  384,    2,  383,  383,  383,  383,  383,  383,  383,
371       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
372       383,  383,  383,  383,  383,  384,  359,  360,  360,  361,
373       384,  363,  364,  364,  365,  384,  370,  367,  368,  368,
374       369,  384,  371,  372,  372,  373,  384,  382,  358,    2,
375       362,  382,  384,  378,  375,  376,  376,  377,  384,  379,
376       380,  380,  381,  384,  383,    0,    1,    2,    2,    2,
377         2,  383,  383,  383,  383,  383,  383,  383,  383,  383,
378 
379       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
380       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
381       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
382       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
383       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
384       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
385       359,    0,  363,    0,  370,    0,  367,  371,    0,  382,
386         0,    2,    2,  382,  378,    0,  375,  379,    0,  383,
387       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
388       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
389 
390       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
391       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
392       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
393       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
394       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
395       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
396       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
397       383,  383,  383,  383,  383,  383,  383,  383,  382,  383,
398       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
399       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
400 
401       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
402       383,  383,  355,  383,  383,  383,  383,  383,  383,  383,
403       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
404       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
405       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
406       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
407       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
408       383,  383,  136,  383,  383,  383,  383,  383,  383,  383,
409       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
410       383,  383,  383,  383,  146,  383,  383,  383,  383,  383,
411 
412       383,  383,  382,  383,  383,  383,  383,  383,  383,  383,
413       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
414       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
415       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
416       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
417       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
418       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
419       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
420       383,  383,  383,  383,  383,  383,  383,  383,  383,  118,
421       383,  383,  354,  383,  383,  383,  383,  383,  383,  383,
422 
423       383,    8,  383,  383,  383,  383,  383,  383,  383,  383,
424       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
425       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
426       383,  383,  383,  383,  137,  383,  383,  383,  383,  383,
427       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
428       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
429       383,  383,  383,  383,  383,  383,  383,  383,  151,  383,
430       383,  382,  383,  383,  383,  383,  383,  383,  383,  383,
431       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
432       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
433 
434       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
435       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
436       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
437       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
438       383,  383,  383,  383,  383,  345,  383,  383,  383,  383,
439       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
440       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
441       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
442       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
443       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
444 
445       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
446       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
447       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
448       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
449       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
450       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
451       383,  383,  383,  383,  382,  383,  383,  383,  383,  383,
452       383,  383,  383,  383,  383,  383,  383,  383,   71,  383,
453       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
454       383,  383,  383,  383,  267,  383,   14,   15,  383,  383,
455 
456        20,   19,  383,  383,  246,  383,  383,  383,  383,  383,
457       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
458       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
459       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
460       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
461       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
462       144,  383,  383,  383,  383,  383,  383,  383,  383,  383,
463       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
464       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
465       244,  383,  383,  383,  383,  383,  383,  383,  383,  383,
466 
467       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
468       383,  383,    3,  383,  383,  383,  383,  383,  383,  383,
469       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
470       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
471       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
472       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
473       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
474       383,  383,  383,  383,  382,  383,  383,  383,  383,  383,
475       383,  383,  383,  335,  383,  383,  383,  334,  383,  383,
476       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
477 
478       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
479       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
480       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
481       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
482       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
483       383,  366,  383,  383,  383,  383,  383,  383,  383,  383,
484        70,  383,  383,  383,  383,  383,  383,  383,  383,  383,
485       383,  383,  383,  383,  383,  383,  383,  383,   74,  383,
486       304,  383,  383,  383,  383,  383,  383,  383,  383,  383,
487       383,  383,  346,  347,  383,  383,  383,  383,  383,  383,
488 
489       383,  383,  383,   75,  383,  383,  145,  383,  383,  383,
490       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
491       383,  383,  383,  140,  383,  383,  383,  383,  383,  383,
492       383,  383,  383,  383,  233,  383,  383,  383,  383,  383,
493       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
494       383,  383,  383,  383,  383,  383,  383,  383,   22,  383,
495       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
496       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
497       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
498       383,  172,  383,  383,  383,  383,  383,  382,  366,  383,
499 
500       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
501       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
502       383,  383,  383,  116,  383,  383,  383,  383,  383,  383,
503       383,  383,  312,  383,  383,  383,  383,  383,  383,  383,
504       383,  383,  383,   16,  383,  383,  383,  383,  383,  383,
505       383,  383,  200,  383,  383,  383,  383,  383,  383,  383,
506       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
507       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
508       383,  383,  383,  383,  383,  171,  383,  383,  383,  383,
509       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
510 
511       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
512       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
513       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
514       383,  383,  383,  383,  383,  383,  115,  383,  383,  383,
515       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
516       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
517       383,  383,  383,  383,  383,  383,  383,  383,  383,   37,
518       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
519       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
520       383,  383,   38,  383,  383,  383,  383,  383,  383,  383,
521 
522       383,  383,  383,  383,  383,  383,  383,  383,  383,   72,
523       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
524       143,  383,  383,  383,  382,  383,  383,  383,  383,  383,
525       383,  135,  383,  383,  383,  383,  383,  383,  383,  383,
526       383,  383,  383,  383,  383,  383,  383,  383,  383,   73,
527       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
528       383,  383,  383,  271,  383,  383,  383,  383,  383,  383,
529       383,  383,  383,  383,  383,  383,  383,  383,  201,  383,
530       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
531       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
532 
533       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
534       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
535        60,  383,  383,  383,  383,  383,  383,  383,  383,  383,
536       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
537       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
538       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
539       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
540       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
541       290,  383,  383,  383,  383,  383,  383,  383,  383,  383,
542       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
543 
544       383,  383,   65,  383,   66,  383,  383,  383,  383,  383,
545       383,  119,  383,  120,  383,  383,  383,  383,  383,  117,
546       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
547       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
548       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
549       383,  383,  383,    7,  383,  383,  383,  383,  382,  383,
550       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
551       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
552       256,  383,  383,  383,  383,  383,  175,  383,  383,  383,
553       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
554 
555       383,  383,  383,  272,  383,  383,  383,  383,  383,  383,
556       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
557       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
558       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
559       383,  383,  383,  383,  383,   51,  383,  383,  383,  383,
560       383,  383,  383,  383,  383,  383,  383,   61,  383,  383,
561       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
562       383,  383,  224,  383,  223,  383,  383,  383,  383,  383,
563       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
564       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
565 
566       383,  383,  383,  383,  383,  383,  383,  383,  383,   17,
567        18,  383,  383,  383,  383,  383,  383,  383,  383,  383,
568       383,  383,  383,  383,  383,  383,   76,  383,  383,  383,
569       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
570       232,  383,  383,  383,  383,  383,  383,  383,  122,  383,
571       121,  383,  383,  383,  383,  383,  383,  383,  383,  383,
572       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
573       383,  383,  383,  383,  383,  383,  383,  214,  383,  383,
574       383,  383,  383,  383,  383,  383,  383,  152,  383,  383,
575       383,  382,  383,  383,  383,  383,  383,  383,  383,  383,
576 
577       383,  383,  383,  383,  110,  383,  383,  383,  383,  383,
578       383,  383,  383,  383,  383,   97,  383,  383,  383,  383,
579       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
580       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
581       383,  383,  245,  383,  383,  383,  383,  383,  383,  383,
582       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
583       383,  383,  383,  102,  383,  383,  383,  383,  383,  383,
584       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
585       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
586       383,   69,  383,  383,  383,  383,  383,  383,  383,  383,
587 
588       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
589       383,  217,  218,  383,  383,  383,  306,  383,  383,  383,
590       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
591       383,  383,  383,    6,  383,  383,  383,  383,  383,  383,
592       383,  325,  383,  383,  383,  383,  383,  383,  383,  383,
593       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
594       383,  383,  310,  383,  383,  383,  383,  383,  383,  383,
595       336,  383,  383,  383,  383,  383,  383,  383,  383,  383,
596       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
597       383,  383,  383,  383,  383,  383,   48,  383,  383,  383,
598 
599       383,  383,   50,  383,  383,  383,   98,  383,  383,  383,
600       383,  383,   58,  383,  383,  383,  383,  383,  383,  383,
601       383,  383,  383,  383,  382,  383,  210,  383,  383,  383,
602       147,  383,  383,  383,  383,  383,  383,  383,  383,  383,
603       383,  383,  383,  237,  383,  383,  211,  383,  383,  383,
604       383,  252,  383,  383,  383,  383,  383,  383,  383,  383,
605       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
606       383,  383,   59,  383,  383,  383,  383,  383,  383,  383,
607       383,  383,  383,  383,  149,  128,  383,  129,  383,  383,
608       383,  383,  127,  383,  383,  383,  383,  383,  383,  383,
609 
610       383,  383,  383,  168,  383,  383,   56,  383,  383,  383,
611       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
612       383,  383,  383,  383,  383,  383,  383,  288,  383,  383,
613       383,  383,  383,  383,  383,  383,  383,  212,  383,  383,
614       383,  383,  383,  222,  215,  383,  221,  383,  383,  383,
615       383,  383,  383,  383,  383,  251,  383,  383,  383,  383,
616       383,  383,  255,  383,  383,  383,  383,  383,  383,  383,
617       383,  383,  383,  383,  114,  383,  383,  383,  383,  383,
618       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
619       383,  383,  383,  383,  383,  383,  141,  383,  383,  383,
620 
621       383,  383,  383,  383,  383,   67,  383,  383,  383,  383,
622        31,  383,  383,  383,  383,  383,  383,  383,  383,  383,
623       383,  383,  383,   21,  383,  383,  383,  383,  383,  383,
624       383,   32,   41,  383,  180,  383,  383,  383,  383,  383,
625       383,  383,  383,  383,  383,  383,  383,  383,  383,  208,
626       383,  383,  382,  383,  383,  383,  383,  350,  383,  383,
627        84,   86,  383,  383,  383,  383,  383,  383,  383,  383,
628       351,  383,  383,  383,  383,  383,  383,  383,  314,  383,
629       383,  383,  383,  268,  383,  383,  383,  383,  383,  383,
630       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
631 
632       383,  383,  383,  383,  383,  383,  383,  130,  383,  383,
633       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
634       167,  383,   52,  383,  383,  383,  383,  383,  383,  383,
635       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
636       383,  383,  383,  262,  383,  383,  383,  383,  383,  383,
637       383,  383,  329,  383,  383,  383,  383,  383,  383,  383,
638       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
639       383,  383,  383,  383,  174,  383,  383,  383,  383,  383,
640       383,  383,  383,  383,  383,  383,  383,  383,  323,  383,
641       383,  383,  383,  243,  383,  383,  383,  383,  383,  383,
642 
643       383,  383,  383,  383,  383,  342,  383,  383,  383,  383,
644       383,  383,  383,  383,  383,  383,  383,  383,  193,  383,
645       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
646       123,  383,  383,  383,  383,  383,  383,  383,  383,  383,
647       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
648       383,  383,  383,  383,  187,  383,  202,  383,  383,  383,
649       383,  383,  383,  383,  382,  383,  155,  383,  383,  383,
650       383,  383,  383,  109,  383,  383,  383,  383,  235,  383,
651       383,  383,  383,  383,  383,  383,  253,  383,  383,  383,
652       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
653 
654       383,  383,  383,  280,  383,  383,  383,  383,  383,  383,
655       383,  383,  383,  383,  383,  148,  383,  383,  383,  383,
656       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
657       383,  383,  383,  383,  191,  383,  383,  383,  383,  383,
658       383,  383,   87,  383,   88,  383,  383,  383,  383,  383,
659       265,  383,  383,  383,  383,  383,   68,  332,  383,  383,
660       383,  383,  383,   96,  203,  383,  225,  383,  257,  383,
661       383,  216,  307,  383,  383,  383,  383,  302,  383,  383,
662       383,   80,  383,  205,  383,  383,  383,  383,  383,  383,
663         9,  383,  383,  383,  383,  383,  113,  383,  383,  383,
664 
665       383,  383,  383,  294,  383,  383,  383,  383,  383,  383,
666       234,  383,  383,  383,  383,  383,  383,  383,  383,  383,
667       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
668       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
669       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
670       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
671       383,  383,  383,  383,  383,  383,  383,  382,  383,  383,
672       383,  383,  190,  383,  383,  383,  383,  383,  383,  383,
673       383,  383,  383,  383,  192,  176,  383,  313,  383,  383,
674       383,  383,  383,  279,  383,  383,  383,  383,  383,  383,
675 
676       383,  383,  383,  383,  383,  247,  383,  383,  383,  383,
677       383,  383,  305,  383,  383,  383,  383,  383,  383,  383,
678       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
679       383,  173,  383,  383,  383,  383,  383,  383,  383,  383,
680       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
681       383,  383,  383,  333,  383,  204,  383,  383,  383,  383,
682       383,  383,  383,  383,  383,   79,   81,  383,  383,  383,
683       383,  383,  383,  383,  383,  383,  383,  112,  383,  383,
684       383,  383,  383,  383,  292,  383,  383,  383,  383,  383,
685       383,  383,  309,  383,  383,  383,  383,  383,  383,  383,
686 
687       383,  383,  383,  383,  383,  383,  239,  383,   39,   33,
688        35,  383,  383,  383,  383,  383,  383,  383,  383,  383,
689       383,  383,  383,  383,   40,  383,   34,   36,  383,   42,
690       383,  383,  383,  383,  383,  383,  383,  108,  383,  186,
691       383,  383,  383,  383,  383,  383,  383,  382,  383,  383,
692       383,  383,  383,  383,  337,  383,  383,  383,  383,  383,
693       241,  238,  383,  383,  383,  383,  383,  383,  383,  383,
694       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
695       383,   78,  383,  383,  383,  150,  383,  131,  383,  383,
696       383,  383,  383,  383,  383,  383,  383,  383,  383,  169,
697 
698        53,  383,  383,  383,  374,   13,  383,  383,  383,  383,
699       383,  383,  383,  156,  383,  383,  383,  383,  383,  383,
700       383,  383,  327,  383,  330,  383,  383,  383,  383,  383,
701       383,  383,  383,  383,  383,  383,  383,  383,   12,  383,
702       383,   23,  383,  383,  383,  383,  383,  383,  383,  298,
703       383,  383,  344,  383,  383,  383,  383,  311,  383,  383,
704       383,  383,   82,  383,  249,  383,  383,  383,  383,  383,
705       240,  383,  383,  383,  383,   77,  383,  383,  383,  383,
706       383,  383,   24,  383,  383,   49,  383,  383,  383,  383,
707       383,  383,  383,  383,  383,  383,  383,  383,  185,  184,
708 
709       383,  383,  374,  383,  383,  383,  383,  383,  383,  383,
710       383,  383,  242,  236,  383,  254,  383,  383,  315,  383,
711       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
712       383,  383,  383,  198,  383,  383,  383,  383,  383,  383,
713       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
714       383,  383,  383,  383,  383,  383,   89,  383,  383,  383,
715       383,  383,  383,  383,  383,  293,  383,  383,  383,  383,
716       220,  383,  383,  383,  383,  383,  383,  248,  383,  383,
717       383,  383,  383,  383,  383,  383,  383,  383,  300,  383,
718       383,  383,  338,  383,  340,  339,  182,  383,  383,  383,
719 
720        83,  383,  383,  383,  383,  194,  383,  383,  383,  383,
721       383,  124,  126,  125,  383,  383,  383,   26,  383,  383,
722       177,  383,  179,  383,  226,  383,  383,  383,  383,  183,
723       383,  383,  383,  383,  258,  383,  383,  383,  383,  383,
724       383,  383,  158,  383,  383,  383,  383,  383,  383,  383,
725       383,  383,  383,  383,  383,  270,  383,  383,  383,  383,
726       383,  383,  383,  352,  383,   28,  383,  308,  383,  383,
727       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
728       383,  383,  383,  383,  383,  383,   94,  227,  383,  383,
729       264,  383,  383,  383,  291,  383,  331,  383,  219,  383,
730 
731       383,  303,  383,  383,  383,  301,   62,  383,  383,  383,
732       383,  383,  383,  383,    4,  383,  383,  383,  383,  383,
733       139,  383,  157,  383,  383,  383,  199,   30,  383,  383,
734       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
735       383,  383,  383,  383,  383,  383,  383,  261,   43,   44,
736       383,  383,  383,  383,  383,  383,  383,  316,  383,  383,
737       383,  383,  383,  383,  383,  278,  383,  383,  383,  383,
738       383,  383,  383,  383,  230,  383,  383,  383,  383,  383,
739       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
740        93,   92,  383,  383,   63,  383,  383,  289,  297,  383,
741 
742       266,  383,  383,  383,  383,  383,   11,  383,  383,  383,
743       383,  356,  383,  383,  383,  383,  383,  138,  383,  383,
744       383,  383,  383,  383,  228,   99,  383,  383,   46,  383,
745       383,  383,  383,  383,  383,  383,  383,  189,  383,  383,
746       383,  383,  383,  383,  383,  160,  383,  383,  383,  383,
747       269,  383,  383,  383,  383,  383,  277,  383,  383,  383,
748       383,  153,  383,  383,  383,  132,  134,  133,  383,  383,
749       383,  101,  105,  100,  383,  170,  383,  383,  383,  383,
750        90,  383,  263,  299,  383,  383,  383,  383,  383,  383,
751        10,  383,  383,  383,  383,  383,  295,  343,  383,  383,
752 
753       383,  383,  383,  383,  383,  383,  349,   45,  383,  383,
754       383,  383,  383,  188,  383,  383,  383,  383,  383,  383,
755       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
756       383,  383,  383,  383,  383,  383,  383,  383,  383,  106,
757       104,  383,  383,   57,  383,  383,   91,  383,  328,  383,
758       383,  383,  383,   25,  383,  383,  383,  383,  383,  213,
759       383,  383,  341,  383,  383,  383,  383,  229,  383,  383,
760       383,  383,  383,  383,  383,  383,  383,  209,  383,  383,
761       178,   85,  383,  383,  383,  383,  383,  317,  383,  383,
762       383,  383,  383,  383,  383,  274,  383,  383,  273,  154,
763 
764       383,  383,  103,  383,   54,  383,  383,  161,  162,  165,
765       166,  163,  164,   95,  326,  383,  383,  296,  142,  383,
766       383,  383,  383,   27,  383,  181,  383,  383,  383,  383,
767       207,  383,  260,  383,  383,  383,  383,  383,  383,  383,
768       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
769       383,  383,  383,  383,  383,  196,  195,  231,   47,  383,
770       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
771       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
772       383,  383,  383,  324,  383,  383,  383,  383,  111,  383,
773       259,  383,  287,  321,  383,  383,  383,  383,  383,  383,
774 
775       383,  383,  383,  383,  383,  353,  383,  107,   55,   64,
776         5,  383,  383,  250,  383,  383,  322,  383,  383,  383,
777       383,  383,  383,  383,  383,  383,  275,   29,  383,  383,
778       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
779       276,  383,  383,  383,  159,  383,  383,  383,  383,  383,
780       383,  383,  383,  197,  383,  206,  383,  383,  383,  383,
781       383,  383,  383,  383,  383,  318,  383,  383,  383,  383,
782       383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
783       383,  383,  383,  348,  383,  383,  283,  383,  383,  383,
784       383,  383,  319,  383,  383,  383,  383,  383,  383,  320,
785 
786       383,  383,  383,  281,  383,  284,  285,  383,  383,  383,
787       383,  383,  282,  286,    0
788     } ;
789 
790 static const YY_CHAR yy_ec[256] =
791     {   0,
792         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
793         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
794         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
795         1,    2,    1,    5,    6,    1,    1,    1,    7,    1,
796         1,    1,    1,    1,    8,    1,    1,    1,    9,    1,
797        10,   11,    1,   12,    1,    1,    1,   13,    1,    1,
798         1,    1,    1,    1,   14,   15,   16,   17,   18,   19,
799        20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
800        30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
801         1,   40,    1,    1,    1,    1,   41,   42,   43,   44,
802 
803        45,   46,   47,   48,   49,   50,   51,   52,   53,   54,
804        55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
805        65,   66,    1,    1,    1,    1,    1,    1,    1,    1,
806         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
807         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
808         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
809         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
810         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
811         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
812         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
813 
814         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
815         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
818         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
819         1,    1,    1,    1,    1
820     } ;
821 
822 static const YY_CHAR yy_meta[67] =
823     {   0,
824         1,    2,    3,    4,    5,    1,    6,    1,    1,    1,
825         1,    1,    7,    1,    1,    1,    1,    1,    1,    1,
826         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
827         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
830         1,    1,    1,    1,    1,    1
831     } ;
832 
833 static const flex_int16_t yy_base[3834] =
834     {   0,
835         0,    0,   64,   67,   70,   72,   78,   84,   89,   92,
836       131,  137,  112,  118,  123,  142,  616,  527,   96,10847,
837     10847,10847,  160,  185,  116,  183,  229,  132,  175,  173,
838       232,   50,   66,  120,  263,  275,  159,  323,  134,  375,
839       416,  286,  308,  283,  126,  258,  516,10847,10847,10847,
840        95,  496,10847,10847,10847,  187,  471,  490,10847,10847,
841     10847,  238,  449,10847,10847,10847,  104,  401,10847,  351,
842     10847,  194,  369,  379,  381,10847,10847,10847,  375,  309,
843     10847,10847,10847,  146,  307,  392,  177,    0,  405,    0,
844         0,  201,  270,  233,  230,  310,  259,  290,  371,  178,
845 
846       335,  396,  413,  415,  330,  358,  417,  368,  442,  402,
847       453,  423,  448,  451,  450,  454,  412,  481,  476,  469,
848       480,  503,  494,  475,  463,  381,  504,  502,  511,  512,
849       514,  515,  530,  531,  532,  551,  543,  345,  544,  561,
850       540,  542,  554,  591,  559,  581,  577,  596,  595,  373,
851       579,  599,  569,  608,  603,  622,  616,  621,  629,  624,
852       281,  180,  273,  339,  268,  668,  273,  228,  222,  210,
853       678,  682,    0,  650,  152,  690,  188,  128,  672,  663,
854       680,  660,  670,  665,  683,  675,  692,  674,  679,  699,
855       676,  697,  702,  727,  705,  709,  716,  250,  743,  787,
856 
857       732,  722,  745,  720,  747,  748,  738,  731,  761,  758,
858       766,  721,  754,  767,  785,  765,  794,  798,  835,  810,
859       786,  789,  256,  816,  825,  258,  802,  418,  845,  829,
860       792,  833,   91,  851,  843,  856,  857,  862,  848,  863,
861       865,  867,  880,  852,  879,  882,  892,  889,  884,  888,
862       881,  910,  908,  900,  917,  911,  922,  923,  919,  928,
863       912,  929,  945,  924,  946,  957,  959,  939,  967,  951,
864       950,  970,  965,  981,  980,  977,  960,  984,  976,  974,
865       987,  982, 1000,  990, 1007, 1023, 1024, 1016, 1020, 1029,
866      1015, 1014, 1017, 1022, 1019, 1037, 1011, 1042, 1050, 1052,
867 
868      1058,  167, 1043, 1064, 1066, 1055, 1072, 1075, 1070, 1080,
869      1081, 1049,10847, 1088, 1082, 1108, 1102, 1111, 1106, 1112,
870      1114, 1116, 1117, 1098, 1103, 1099, 1115, 1123, 1129, 1131,
871      1130, 1133, 1135, 1163, 1147, 1166, 1155, 1171, 1170, 1156,
872      1210, 1172, 1157, 1180, 1255, 1174, 1176, 1193, 1215, 1211,
873       320, 1206, 1188, 1204, 1208, 1225, 1244, 1250, 1254, 1226,
874      1238, 1265, 1267, 1253, 1264, 1270, 1257, 1285, 1287, 1283,
875      1183, 1308,10847, 1295, 1312, 1313, 1314, 1318, 1321, 1316,
876      1333, 1346, 1328, 1331, 1357, 1361, 1358, 1394, 1442, 1351,
877      1366, 1359, 1364, 1386,10847, 1401, 1391, 1491, 1384, 1408,
878 
879      1375, 1427, 1389, 1422, 1435, 1437, 1429, 1382, 1439, 1355,
880      1432, 1460, 1485, 1490, 1451, 1482, 1481, 1492, 1509, 1484,
881      1424, 1454, 1508, 1488, 1511, 1544, 1517, 1527, 1540, 1548,
882      1529, 1530, 1535, 1537, 1546, 1556, 1554, 1586, 1564, 1578,
883      1565, 1571, 1569, 1583, 1576, 1587, 1610, 1655, 1607, 1595,
884      1615, 1596, 1616, 1612, 1608, 1634, 1644, 1635, 1631, 1650,
885      1652, 1651, 1654, 1661, 1671, 1682, 1617, 1680, 1686, 1659,
886      1681, 1687, 1689, 1714, 1693, 1698, 1704, 1712, 1703, 1707,
887      1721, 1730, 1732, 1725, 1739, 1733, 1747, 1742, 1734,10847,
888      1749, 1745,10847, 1750, 1767, 1757, 1770, 1759, 1776, 1762,
889 
890      1773,10847, 1772, 1769, 1784, 1793, 1796, 1798, 1806, 1818,
891      1811, 1807, 1819, 1823, 1808, 1809, 1820, 1833, 1812, 1837,
892      1857, 1841, 1839, 1836, 1849, 1861, 1774, 1864, 1847, 1867,
893      1863, 1854, 1874, 1914,10847, 1866, 1856, 1883, 1876, 1889,
894      1900, 1896, 1917, 1941, 1909, 1938, 1910, 1945, 1957, 1944,
895      1942, 1961, 1951, 1891, 1965, 1955, 1975, 1968, 1967, 1972,
896      1995, 1978, 1982, 1993, 1991, 1989, 2002, 2005,10847, 2003,
897      2009, 2015, 2020, 2014, 2006, 2018, 2029, 2033, 2034, 2032,
898      2047, 2039, 2053, 2030, 2057, 1727, 2063, 2056, 2067, 2072,
899      2059, 2066, 2061, 2058, 2082, 2086, 2088, 2085, 2108, 2078,
900 
901      2106, 2110,  158, 2116, 2117, 2119, 2125, 2126, 2105, 2109,
902      2115, 2135, 2124, 2120, 2114, 2137, 2143, 2132, 2141, 2154,
903      2150, 2149, 2157, 2145, 2166, 2159, 2177, 2164, 2153, 2184,
904      2175, 2176, 2187, 2188, 2190, 2183, 2215, 2202, 2208, 2210,
905      2214, 2233, 2234, 2217, 2198,10847, 2237, 2240, 2243, 2248,
906      2232, 2257, 2253, 2258, 2255, 2250, 2265, 2273, 2264, 2261,
907      2287, 2284, 2275, 2292, 2282, 2290, 2289, 2298, 2300, 2311,
908      2309, 2319, 2330, 2310, 2320, 2313, 2317, 2327, 2329, 2328,
909      2332, 2353, 2347, 2363, 2358, 2339, 2360, 2355, 2372, 2356,
910      2362, 2381, 2368, 2357, 2385, 2392, 2384, 2405, 2402, 2403,
911 
912      2420, 2378, 2395, 2430, 2444, 2413, 2390, 2424, 2427, 2441,
913      2428, 2434, 2440, 2442, 2429, 2439, 2468, 2470, 2455, 2462,
914      2463, 2465, 2461, 2481, 2479, 2486, 2476, 2485, 2488, 2490,
915      2495, 2505, 2498, 2501, 2514, 2513, 2515, 2518, 2520, 2543,
916      2535, 2551, 2540, 2536, 2546, 2542, 2541, 2554, 2556, 2566,
917      2561, 2577, 2582, 2583, 2567, 2592, 2593, 2578, 2588, 2580,
918      2586, 2594, 2614, 2607, 2601, 2605, 2625, 2617, 2627, 2622,
919      2635, 2628, 2618, 2640, 2650, 2648, 2641, 2652,10847, 2653,
920      2655, 2657, 2654, 2656, 2658, 2664, 2675, 2695, 2684, 2687,
921      2678, 2673, 2686, 2732,10847, 2697,10847,10847, 1581, 2691,
922 
923     10847,10847, 2700, 2720,10847, 2716, 2722, 2721, 2688, 2736,
924      2745, 2749, 2718, 2742, 2748, 2763, 2715, 2810, 2766, 2753,
925      2761, 2773, 2770, 2768, 2803, 2789, 2779, 2800, 2793, 2799,
926      2830, 2845, 2835, 2846, 2821, 2838, 2851, 2848, 2856, 2849,
927      2861, 2862, 2855, 2858, 2880, 2870, 2868, 2885, 2891, 2881,
928      2878, 2886, 2901, 2888, 2897, 2894, 2775, 2905, 2899, 2935,
929     10847, 2917, 2876, 2913, 2915, 2918, 2944, 2936, 2951, 2945,
930      2946, 2939, 2950, 2953, 2937, 2949, 2942, 2954, 2963, 2976,
931      2970, 2969, 2972, 2989, 2984, 2987, 2992, 2975, 2980, 2981,
932     10847, 2996, 2997, 2977, 2994, 3008, 3017, 3027, 3024, 3020,
933 
934      3012, 3022, 3025, 3046, 3028, 3044, 3033, 3040, 3041, 3039,
935      3052, 3071,10847, 3060, 3076, 3057, 3075, 3064, 3083, 3072,
936      3073, 3084, 3094, 3086, 3081, 3112, 3099, 3105, 3101, 3109,
937      3111, 3113, 3108, 3120, 3119, 3122, 3128, 3132, 3148, 3139,
938      3133, 3154, 3145, 3159, 3150, 3146, 3152, 3156, 3162, 3179,
939      3183, 3173, 3189, 3174, 3184, 3196, 3198, 3195, 3186, 3200,
940      3197, 3207, 3216, 3213, 3223, 3218, 3215, 3222, 3224, 3210,
941      3236, 3234, 3241, 3251, 3258, 3244, 3260, 3255, 3243, 3257,
942      3261, 3270, 3247,10847, 3271, 3285, 3286,10847, 3288, 3287,
943      3284, 3332, 3304, 3289, 3302, 3303, 3319, 3298, 3334, 3325,
944 
945      3328, 3344, 3333, 3356, 3345, 3359, 3374, 3362, 3379, 3370,
946      3380, 3381, 3387, 3371, 3388, 3401, 3386, 3393, 3398, 3294,
947      3421, 3396,  477, 3429, 3405, 3412, 3415, 3460, 3423, 3438,
948      3422, 3428, 3444, 3446, 3449, 3450, 3465, 3455, 3456, 3470,
949      3478, 3458, 3485, 3487, 3482, 3488, 3492, 3493, 3498, 3514,
950      3502,10847, 3508, 3520, 3505, 3525, 3515, 3538, 3529, 3517,
951     10847, 3531, 3537, 3527, 3544, 3539, 3541, 3554, 3542, 3558,
952      3552, 3556, 3565, 3569, 3573, 3568, 3567, 3593,10847, 3575,
953     10847, 3583, 3586, 3587, 3602, 3595, 3589, 3601, 3599, 3604,
954      3616, 3618,10847,10847, 3620, 3622, 3628, 3629, 3641, 3643,
955 
956      3631, 3636, 3646,10847, 3644, 3666,10847, 3661, 3654, 3650,
957      3658, 3655, 3663, 3667, 3673, 3670, 3680, 3681, 3678, 3689,
958      3688, 3699, 3697,10847, 3708, 3710, 3693, 3707, 3716, 3701,
959      3718, 3724, 3728, 3720,10847, 3736, 3730, 3743, 3731, 3755,
960      3753, 3756, 3744, 3758, 3763, 3748, 3759, 3747, 3769, 3768,
961      3773, 3782, 3789, 3792, 3793, 3806, 3799, 3807,10847, 3805,
962      3785, 3791, 3812, 3808, 3787, 3814, 3818, 3816, 3824, 3809,
963      3819, 3826, 3833, 3847, 3839, 3846, 3840, 3820, 3866, 3848,
964      3860, 3862, 3845, 3854, 3870, 3876,  552, 3878, 3871, 3881,
965      3874,10847, 3883, 3877, 3898, 3907, 3908, 3891,  115, 3901,
966 
967      3904, 3905, 3909, 3921, 3922, 3916, 3925, 3893, 3927, 3932,
968      3934, 3946, 3953, 3957, 3942, 3944, 3960, 3948, 3949, 3964,
969      3959, 3973, 3977,10847, 3970, 3984, 3975, 3981, 3986, 3997,
970      3985, 4002,10847, 4006, 4008, 4012, 4014, 4013, 4024, 4019,
971      4023, 4034, 4044,10847, 4049, 4036, 4045, 4032, 4051, 4046,
972      4047, 4043,10847, 4064, 4061, 4063, 4072, 4070, 4073, 4085,
973      4071, 4081, 4082, 4102, 4088, 4099, 4095, 4091, 4090, 4098,
974      4118, 4112, 4109, 4136, 4115, 4126, 4131, 4129, 4130, 4138,
975      4133, 4134, 4151, 4153, 4148,10847, 4160, 4154, 4156, 4164,
976      4162, 4158, 4179, 4176, 4205, 4171, 4180, 4189, 4191, 4232,
977 
978      4195, 4203, 4209, 4219, 4221, 4223, 4216, 4215, 4229, 4239,
979      4230, 4242, 4248, 4274, 4253, 4247, 4243, 4267, 4278, 4275,
980      4266, 4280, 4269, 4270, 4292, 4289, 4294, 4293, 4287, 4290,
981      4322, 4318, 4310, 4325, 4329, 4321,10847, 4330, 4320, 4319,
982      4337, 4345, 4373, 4351, 4361, 4349, 4369, 4363, 4366, 4364,
983      4365, 4372, 4314, 4378, 4368, 4381, 4395, 4398, 4400, 4385,
984      4408, 4399, 4393, 4419, 4423, 4413, 4429, 4426, 4430,10847,
985      4434, 4433, 4420, 4440, 4443, 4442, 4448, 4451, 4458, 4447,
986      4450, 4459, 4454, 4464, 4455, 4470, 4467, 4488, 4491, 4483,
987      4499, 4475,10847, 4500, 4489, 4495, 4507, 4510, 4516, 4498,
988 
989      4527, 4514, 4531, 4528, 4533, 4522, 4539, 4535, 4534,10847,
990      4551, 4555, 4548, 4552, 4569, 4559, 4554, 4560, 4570, 4556,
991     10847, 4572, 4567, 4578, 4574, 4582, 4583, 4595, 4596, 4586,
992      4597,10847, 4598, 4600, 4591, 4612, 4601, 4605, 4616, 4613,
993      4625, 4622, 4609, 4619, 4640, 4632, 4651, 4633, 4649,10847,
994      4636, 4648, 4670, 4653, 4657, 4660, 4659, 4664, 4681, 4680,
995      4665, 4692, 4676,10847, 4707, 4700, 4698, 4710, 4695, 4702,
996      4693, 4708, 4719, 4725, 4715, 4712, 4738, 4727,10847, 4731,
997      4726, 4746, 4748, 4752, 4750, 4742, 4721, 4751, 4765, 4766,
998      4753, 4769, 4771, 4770, 4777, 4780, 4794, 4783, 4788, 4779,
999 
1000      4796, 4816, 4803, 4810, 4804, 4821, 4723, 4808, 4806, 4833,
1001      4825, 4830, 4823, 4832, 4835, 4843, 4846, 4847, 4854, 4857,
1002     10847, 4856, 4860, 4859, 4851, 4863, 4862, 4873, 4865, 4870,
1003      4874, 4885, 4900, 4895, 4889, 4918, 4919, 4903, 4890, 4922,
1004      4906, 4912, 4902, 4921, 4924, 4920, 4936, 4929, 4937, 4939,
1005      4935, 4944, 4934, 4946, 4949, 4966, 4970, 4956, 4965, 4958,
1006      4961, 4971, 4981, 4964, 4982, 4979, 4988, 4993, 4991, 4992,
1007      5001, 5012, 5014, 5017, 5020, 5016, 5018, 5023, 5021, 5051,
1008     10847, 5028, 5039, 5031, 5037, 5045, 5055, 5035, 5049, 5072,
1009      5059, 5062, 5073, 5078, 5081, 5084, 5067, 5077, 5082, 5076,
1010 
1011      5098, 5090,10847, 5089,10847, 5111, 5092, 5115, 5123, 5126,
1012      5108,10847, 5127,10847, 5129, 5130, 5117, 5121, 5125,10847,
1013      5136, 5122, 5138, 5152, 5142, 5144, 5159, 5146, 5156, 5171,
1014      5163, 5151, 5179, 5172, 5164, 5169, 5168, 5185, 5186, 5183,
1015      5198, 5195, 5202, 5192, 5211, 5201, 5222, 5204, 5214, 5207,
1016      5231, 5220, 5225,10847, 5236, 5234, 5227, 5241, 5243, 5238,
1017      5255, 5252, 5260, 5250, 5267, 5277, 5279, 5261, 5265, 5270,
1018      5280, 5282, 5288, 5290, 5298, 5308, 5295, 5294, 5324, 5318,
1019     10847, 5312, 5328, 5311, 5315, 5325,10847, 5327, 5309, 5342,
1020      5345, 5335, 5329, 5348, 5341, 5364, 5359, 5354, 5358, 5376,
1021 
1022      5353, 5383, 5381,10847, 5380, 5390, 5371, 5398, 5387, 5375,
1023      5402, 5417, 5408, 5418, 5423, 5425, 5426, 5420, 5412, 5415,
1024      5416, 5429, 5442, 5443, 5446, 5444, 5453, 5439, 5450, 5454,
1025      5459, 5447, 5448, 5452, 5466, 5463, 5470, 5473, 5474, 5478,
1026      5477, 5494, 5497, 5489, 5500,10847, 5491, 5501, 5493, 5514,
1027      5511, 5516, 5517, 5522, 5539, 5518, 5538,10847, 5548, 5530,
1028      5546, 5540, 5553, 5541, 5557, 5558, 5543, 5563, 5574, 5569,
1029      5583, 5570,10847, 5585,10847, 5575, 5579, 5588, 5594, 5607,
1030      5596, 5599, 5611, 5624, 5612, 5609, 5632, 5635, 5626, 5621,
1031      5638, 5627, 5631, 5636, 5630, 5659, 5651, 5652, 5655, 5633,
1032 
1033      5670, 5660, 5672, 5663, 5669, 5673, 5706, 5686, 5682,10847,
1034     10847, 5678, 5666, 5713, 5712, 5701, 5710, 5721, 5723, 5720,
1035      5730, 5733, 5709, 5704, 5737, 5763,10847, 5752, 5753, 5745,
1036      5764, 5756, 5748, 5758, 5771, 5750, 5773, 5760, 5786, 5782,
1037     10847, 5772, 5784, 5775, 5791, 5793, 5805, 5812,10847, 5802,
1038     10847, 5798, 5803, 5807, 5813, 5818, 5815, 5825, 5819, 5830,
1039      5833, 5840, 5856, 5832, 5841, 5855, 5848, 5862, 5844, 5845,
1040      5857, 5866, 5860, 5874, 5870, 5878, 5868,10847, 5879, 5882,
1041      5895, 5891, 5887, 5893, 5903, 5901, 5888,10847, 5905, 5915,
1042      5909, 5919, 5918, 5917, 5921, 5929, 5928, 5927, 5944, 5936,
1043 
1044      5945, 5953, 5954, 5937,10847, 5942, 5955, 5958, 5971, 5960,
1045      5964, 5959, 5986, 5974, 5973,10847, 5985, 6000, 5987, 6004,
1046      6003, 5995, 6006, 6012, 5991, 5997, 6002, 6010, 6021, 6027,
1047      6016, 6024, 6029, 6035, 6048, 6038, 6056, 6045, 6049, 6060,
1048      6014, 6052,10847, 6053, 6047, 6059, 6065, 6062, 6088, 6085,
1049      6093, 6098, 6102, 6083, 6104, 6105, 6086, 6095, 6097, 6111,
1050      6110, 6124, 6120,10847, 6132, 6117, 6141, 6119, 6134, 6127,
1051      6137, 6148, 6129, 6150, 6153, 6143, 6136, 6160, 6166, 6172,
1052      6169, 6177, 6176, 6182, 6179, 6185, 6183, 6187, 6191, 6201,
1053      6214,10847, 6186, 6206, 6210, 6221, 6215, 6212, 6235, 6222,
1054 
1055      6216, 6224, 6194, 6229, 6239, 6237, 6238, 6243, 6259, 6261,
1056      6248,10847,10847, 6269, 6249, 6264,10847, 6270, 6256, 6283,
1057      6262, 6276, 6266, 6285, 6278, 6275, 6287, 6289, 6296, 6308,
1058      6311, 6301, 6297,10847, 6320, 6324, 6323, 6310, 6325, 6336,
1059      6331,10847, 6315, 6344, 6341, 6338, 6337, 6340, 6342, 6326,
1060      6363, 6364, 6371, 6357, 6351, 6378, 6353, 6369, 6388, 6365,
1061      6372, 6390,10847, 6380, 6389, 6392, 6386, 6396, 6399, 6407,
1062     10847, 6406, 6405, 6427, 6423, 6421, 6431, 6426, 6436, 6448,
1063      6439, 6444, 6446, 6424, 6456, 6449, 6452, 6454, 6451, 6450,
1064      6467, 6475, 6471, 6485, 6488, 6486,10847, 6491, 6492, 6477,
1065 
1066      6501, 6493,10847, 6505, 6526, 6515,10847, 6519, 6496, 6520,
1067      6517, 6536,10847, 6527, 6530, 6528, 6537, 6516, 6542, 6523,
1068      6553, 6551, 6543, 6554, 6555, 6546,10847, 6559, 6556, 6572,
1069     10847, 6576, 6581, 6578, 6588, 6590, 6580, 6573, 6564, 6586,
1070      6589, 6591, 6587,10847, 6604, 6610,10847, 6622, 6608, 6614,
1071      6627,10847, 6617, 6618, 6633, 6632, 6631, 6637, 6641, 6644,
1072      6634, 6623, 6639, 6645, 6657, 6658, 6672, 6656, 6660, 6670,
1073      6664, 6666,10847, 6699, 6668, 6683, 6685, 6661, 6695, 6689,
1074      6690, 6693, 6710, 6705,10847,10847, 6701,10847, 6721, 6717,
1075      6719, 6720,10847, 6716, 6725, 6745, 6732, 6729, 6748, 6740,
1076 
1077      6737, 6734, 6757,10847, 6753, 6767,10847, 6746, 6764, 6776,
1078      6760, 6771, 6761, 6759, 6784, 6798, 6781, 6777, 6788, 6794,
1079      6801, 6791, 6805, 6804, 6835, 6797, 6836,10847, 6823, 6810,
1080      6837, 6845, 6830, 6831, 6850, 6847, 6834,10847, 6862, 6857,
1081      6865, 6863, 6864,10847,10847, 6876,10847, 6869, 6879, 6881,
1082      6895, 6880, 6882, 6795, 6884,10847, 6898, 6891, 6901, 6890,
1083      6908, 6917,10847, 6918, 6925, 6915, 6920, 6914, 6926, 6931,
1084      6924, 6927, 6967, 6941,10847, 6929, 6945, 6943, 6969, 6970,
1085      6962, 6963, 6954, 6982, 6975, 6977, 6965, 6989, 6987, 6985,
1086      6981, 6990, 6998, 7002, 7008, 6997,10847, 7017, 7019, 7025,
1087 
1088      7012, 7037, 7022, 7014, 7024,10847, 7030, 7035, 7040, 7048,
1089     10847, 7046, 7057, 7060, 7056, 7058, 7061, 7063, 7055, 7041,
1090      7064, 7074, 7090,10847, 7082, 7085, 7080, 7105, 7106, 7093,
1091      7096,10847,10847, 7107,10847, 7109, 7108, 7103, 7101, 7122,
1092      7116, 7139, 7135, 7148, 7132, 7136, 7152, 7146, 7141,10847,
1093      7138, 6992, 7142, 7172, 7165, 7166, 7167,10847, 7168, 7160,
1094     10847,10847, 7171, 7185, 7187, 7181, 7196, 7199, 7192, 7183,
1095     10847, 7191, 7194, 7206, 7219, 7205, 7217, 7229,10847, 7221,
1096      7210, 7231, 7214,10847, 7218, 7237, 7227, 7224, 7248, 7241,
1097      7244, 7245, 7258, 7251, 7255, 7270, 7252, 7271, 7266, 7262,
1098 
1099      7277, 7269, 7264, 7294, 7289, 7287, 7306,10847, 7301, 7293,
1100      7298, 7300, 7307, 7311, 7304, 7297, 7325, 7320, 7345, 7347,
1101     10847, 7328,10847, 7336, 7334, 7350, 7351, 7338, 7354, 7355,
1102      7363, 7346, 7364, 7357, 7376, 7368, 7367, 7377, 7392, 7382,
1103      7384, 7387, 7401,10847, 7407, 7409, 7393, 7411, 7413, 7417,
1104      7418, 7416,10847, 7426, 7403, 7427, 7429, 7433, 7442, 7432,
1105      7446, 7437, 7457, 7448, 7456, 7462, 7465, 7452, 7458, 7469,
1106      7454, 7472, 7473, 7476,10847, 7475, 7477, 7482, 7486, 7488,
1107      7500, 7485, 7507, 7515, 7508, 7492, 7502, 7518,10847, 7509,
1108      7521, 7523, 7526,10847, 7519, 7534, 7529, 7542, 7537, 7554,
1109 
1110      7536, 7560, 7558, 7544, 7573,10847, 7570, 7563, 7568, 7564,
1111      7576, 7580, 7581, 7546, 7592, 7595, 7607, 7608,10847, 7585,
1112      7602, 7612, 7613, 7619, 7605, 7620, 7616, 7639, 7622, 7632,
1113     10847, 7645, 7647, 7651, 7646, 7667, 7668, 7644, 7654, 7672,
1114      7671, 7675, 7657, 7673, 7684, 7670, 7692, 7695, 7696, 7697,
1115      7694, 7698, 7715, 7685,10847, 7700,10847, 7709, 7717, 7733,
1116      7723, 7736, 7721, 7738, 7735, 7732,10847, 7742, 7755, 7741,
1117      7728, 7764, 7769,10847, 7763, 7760, 7762, 7766,10847, 7780,
1118      7779, 7768, 7782, 7786, 7792, 7796,10847, 7799, 7805, 7807,
1119      7819, 7821, 7809, 7817, 7806, 7824, 7810, 7813, 7811, 7828,
1120 
1121      7833, 7836, 7826,10847, 7837, 7839, 7843, 7854, 7856, 7853,
1122      7858, 7845, 7869, 7871, 7863,10847, 7870, 7864, 7879, 7881,
1123      7868, 7883, 7885, 7888, 7909, 7907, 7915, 7917, 7903, 7900,
1124      7904, 7920, 7908, 7922,10847, 7912, 7937, 7928, 7942, 7943,
1125      7946, 7939,10847, 7948,10847, 7944, 7945, 7960, 7962, 7966,
1126     10847, 7971, 7963, 7973, 7956, 7990,10847,10847, 7975, 7968,
1127      7984, 7977, 7988,10847,10847, 7999,10847, 7989,10847, 7994,
1128      7998,10847,10847, 8005, 7986, 8001, 8006,10847, 8015, 8017,
1129      8029,10847, 8030,10847, 8036, 8018, 8039, 8032, 8028, 8046,
1130     10847, 8033, 8055, 8041, 8049, 8043,10847, 8056, 8060, 8065,
1131 
1132      8067, 8063, 8059,10847, 8064, 8086, 8082, 8076, 8085, 8075,
1133     10847, 8096, 8100, 8101, 8092, 8098, 8102, 8109, 8116, 8103,
1134      8112, 8123, 8133, 8120, 8128, 8141, 8149, 8136, 8152, 8154,
1135      8156, 8145, 8159, 8153, 8164, 8165, 8173, 8176, 8158, 8162,
1136      8175, 8179, 8184, 8191, 8190, 8189, 8194, 8195, 8201, 8210,
1137      8203, 8206, 8211, 8200, 8214, 8204, 8209, 8225, 8234, 8244,
1138      8222, 8233, 8232, 8230, 8241, 8236, 8260, 8252, 8265, 8267,
1139      8259, 8263,10847, 8270, 8273, 8269, 8275, 8280, 8285, 8279,
1140      8303, 8277, 8309, 8312,10847,10847, 8315,10847, 8317, 8296,
1141      8310, 8300, 8305,10847, 8304, 8311, 8306, 8330, 8325, 8333,
1142 
1143      8347, 8338, 8336, 8341, 8361,10847, 8360, 8366, 8355, 8345,
1144      8370, 8371,10847, 8374, 8373, 8357, 8372, 8377, 8385, 8388,
1145      8387, 8389, 8393, 8394, 8404, 8411, 8423, 8424, 8406, 8410,
1146      8419,10847, 8427, 8429, 8416, 8421, 8431, 8432, 8438, 8446,
1147      8436, 8442, 8444, 8450, 8452, 8451, 8456, 8455, 8476, 8459,
1148      8480, 8483, 8490,10847, 8473,10847, 8484, 8477, 8486, 8489,
1149      8500, 8494, 8501, 8495, 8499,10847,10847, 8504, 8511, 8527,
1150      8534, 8520, 8519, 8539, 8532, 8525, 8544,10847, 8538, 8545,
1151      8549, 8546, 8558, 8556,10847, 8559, 8563, 8561, 8565, 8570,
1152      8571, 8568,10847, 8567, 8580, 8595, 8592, 8600, 8583, 8603,
1153 
1154      8604, 8605, 8596, 8601, 8597, 8615,10847, 8616,10847,10847,
1155     10847, 8620, 8624, 8623, 8625, 8622, 8640, 8641, 8629, 8646,
1156      8648, 8634, 8639, 8643,10847, 8663,10847,10847, 8664,10847,
1157      8666, 8660, 8672, 8668, 8670, 8679, 8675,10847, 8685,10847,
1158      8687, 8702, 8690, 8694, 8708, 8704, 8699, 8711, 8706, 8715,
1159      8710, 8712, 8651, 8717,10847, 8723, 8726, 8738, 8725, 8746,
1160     10847,10847, 8735, 8754, 8753, 8763, 8755, 8759, 8747, 8771,
1161      8765, 8762, 8768, 8757, 8770, 8758, 8776, 8781, 8788, 8789,
1162      8800,10847, 8795, 8804, 8807,10847, 8799,10847, 8808, 8812,
1163      8814, 8803, 8805, 8815, 8816, 8822, 8838, 8829, 8848,10847,
1164 
1165     10847, 8836, 8860, 8851,10847,10847, 8839, 8841, 8842, 8840,
1166      8864, 8863, 8852,10847, 8867, 8868, 8872, 8878, 8874, 8881,
1167      8882, 8887,10847, 8892,10847, 8891, 8898, 8912, 8888, 8897,
1168      8921, 8903, 8899, 8926, 8927, 8920, 8910, 8931,10847, 8923,
1169      8929,10847, 8946, 8940, 8941, 8933, 8938, 8957, 8949,10847,
1170      8960, 8948,10847, 8971, 8954, 8974, 8980,10847, 8982, 8979,
1171      8981, 8976,10847, 8989,10847, 8970, 8987, 8984, 8999, 8988,
1172     10847, 8975, 8998, 9001, 9004,10847, 9020, 9024, 9029, 9027,
1173      9022, 9023,10847, 9033, 9016,10847, 9017, 9038, 9039, 9041,
1174      9031, 9042, 9057, 9053, 9045, 9058, 9052, 9051,10847,10847,
1175 
1176      9079, 9072,   73, 9081, 9060, 9068, 9069, 9084, 9080, 9066,
1177      9096, 9092,10847,10847, 9097,10847, 9086, 9098,10847, 9078,
1178      9106, 9111, 9114, 9115, 9108, 9117, 9129, 9122, 9134, 9149,
1179      9136, 9127, 9147,10847, 9145, 9162, 9159, 9165, 9166, 9168,
1180      9170, 9179, 9182, 9172, 9176, 9164, 9174, 9193, 9190, 9207,
1181      9194, 9209, 9210, 9196, 9198, 9206,10847, 9222, 9224, 9225,
1182      9215, 9232, 9229, 9233, 9236,10847, 9244, 9240, 9248, 9245,
1183     10847, 9258, 9252, 9255, 9266, 9259, 9260,10847, 9262, 9270,
1184      9273, 9272, 9274, 9265, 9267, 9275, 9286, 9309,10847, 9285,
1185      9299, 9310,10847, 9300,10847,10847,10847, 9311, 9318, 9305,
1186 
1187     10847, 9320, 9307, 9297, 9312,10847, 9323, 9328, 9331, 9139,
1188      9317,10847,10847,10847, 9326, 9347, 9345,10847, 9339, 9336,
1189     10847, 9348,10847, 9341,10847, 9356, 9364, 9370, 9367,10847,
1190      9368, 9372, 9363, 9401,10847, 9365, 9380, 9382, 9384, 9386,
1191      9389, 9409,10847, 9415, 9412, 9413, 9419, 9403, 9410, 9404,
1192      9429, 9420, 9428, 9399, 9427,10847, 9439, 9445, 9448, 9456,
1193      9440, 9447, 9449,10847, 9451,10847, 9458,10847, 9455, 9460,
1194      9466, 9465, 9454, 9472, 9475, 9489, 9496, 9483, 9484, 9506,
1195      9499, 9487, 9486, 9509, 9517, 9500,10847,10847, 9525, 9515,
1196     10847, 9516, 9518, 9537,10847, 9520,10847, 9538,10847, 9524,
1197 
1198      9532,10847, 9545, 9539, 9549,10847,10847, 9553, 9542, 9551,
1199      9563, 9534, 9570, 9552,10847, 9572, 9569, 9566, 9568, 9574,
1200     10847, 9593,10847, 9582, 9596, 9587,10847,10847, 9581, 9578,
1201      9594, 9606, 9600, 9591, 9607, 9605, 9608, 9619, 9627, 9609,
1202      9613, 9621, 9624, 9622, 9642, 9644, 9649,10847,10847,10847,
1203      9646, 9636, 9662, 9659, 9657, 9666, 9652,10847, 9673, 9665,
1204      9675, 9648, 9686, 9681, 9682,10847, 9676, 9677, 9685, 9693,
1205      9690, 9692, 9700, 9687,10847, 9691, 9701, 9721, 9719, 9715,
1206      9725, 9731, 9732, 9734, 9726, 9736, 9727, 9718, 9746, 9742,
1207     10847,10847, 9739, 9733,10847, 9750, 9755,10847,10847, 9745,
1208 
1209     10847, 9743, 9753, 9759, 9757, 9767,10847, 9781, 9761, 9766,
1210      9769,10847, 9770, 9780, 9798, 9799, 9796,10847, 9786, 9806,
1211      9791, 9801, 9810, 9814,10847,10847, 9782, 9821,10847, 9822,
1212      9824, 9818, 9839, 9823, 9828, 9840, 9838,10847, 9848, 9849,
1213      9833, 9837, 9856, 9846, 9862,10847, 9863, 9850, 9866, 9867,
1214     10847, 9864, 9876, 9883, 9851, 9897,10847, 9899, 9885, 9879,
1215      9903,10847, 9891, 9912, 9894,10847,10847,10847, 9916, 9917,
1216      9918,10847,10847,10847, 9910,10847, 9920, 9928, 9921, 9923,
1217     10847, 9926,10847,10847, 9936, 7880, 9958, 9946, 9960, 9947,
1218     10847, 9949, 9952, 9962, 9948, 9950,10847,10847, 9965, 9968,
1219 
1220      9963, 9974, 9975, 9970, 9981, 9978,10847,10847, 9957, 9979,
1221      9996, 9995, 9988,10847, 9993,10007,10014,10008,10015,10018,
1222     10019,10009,10023,10020,10053,10038,10027,10022,10036,10035,
1223     10055,10039,10061,10073,10063,10070,10071,10059,10067,10847,
1224     10847,10075,10062,10847,10077,10082,10847,10065,10847,10078,
1225     10081,10093,10095,10847,10106,10107,10111,10112,10087,10847,
1226     10108,10115,10847,10116,10110,10109,10103,10847,10114,10124,
1227     10126,10125,10132,10136,10142,10130,10128,10847,10146,10160,
1228     10847,10847,10144,10163,10138,10167,10152,10847,10172,10182,
1229     10169,10173,10165,10180,10185,10847,10197,10177,10847,10847,
1230 
1231     10202,10193,10847,10213,10847,10189,10199,10847,10847,10847,
1232     10847,10847,10847,10847,10847,10212,10218,10847,10847,10209,
1233     10223,10227,10231,10847,10232,10847,10211,10228,10239,10233,
1234     10847,10238,10847,10224,10245,10257,10261,10254,10266,10255,
1235     10258,10260,10259,10246,10276,10283,10285,10294,10279,10289,
1236     10302,10290,10308,10293,10306,10847,10847,10847,10847,10316,
1237     10295,10314,10322,10323,10324,10332,10337,10320,10326,10341,
1238     10340,10343,10329,10347,10360,10349,10353,10356,10369,10357,
1239     10378,10379,10382,10847,10385,10371,10372,10393,10847,10380,
1240     10847,10376,10847,10847,10397,10399,10402,10389,10406,10407,
1241 
1242     10401,10398,10404,10409,10417,10847,10419,10847,10847,10847,
1243     10847,10418,10420,10847,10416,10428,10847,10429,10443,10433,
1244     10438,10441,10434,10457,10458,10464,10847,10847,10466,10455,
1245     10450,10471,10467,10479,10482,10487,10490,10496,10478,10493,
1246     10847,10502,10498,10504,10847,10507,10489,10505,10499,10514,
1247     10520,10517,10524,10847,10526,10847,10521,10531,10541,10523,
1248     10530,10539,10554,10551,10548,10847,10545,10558,10565,10573,
1249     10576,10575,10582,10568,10590,10586,10592,10593,10598,10599,
1250     10596,10603,10609,10847,10597,10610,10847,10607,10617,10619,
1251     10621,10626,10847,10631,10624,10633,10644,10641,10650,10847,
1252 
1253     10647,10659,10654,10847,10658,10847,10847,10664,10656,10668,
1254     10662,10666,10847,10847,10847,10727,10734,10741,10748,10755,
1255     10762,10769,  100,10776,10783,10790,10797,10804,10811,10818,
1256     10825,10832,10839
1257     } ;
1258 
1259 static const flex_int16_t yy_def[3834] =
1260     {   0,
1261      3815,    1, 3816, 3816, 3817, 3817, 3818, 3818, 3819, 3819,
1262      3820, 3820, 3821, 3821, 3822, 3822, 3815, 3823, 3815, 3815,
1263      3815, 3815, 3824, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1264      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1265      3823, 3823, 3823, 3823, 3823, 3823, 3825, 3815, 3815, 3815,
1266      3825, 3826, 3815, 3815, 3815, 3826, 3827, 3815, 3815, 3815,
1267      3815, 3827, 3828, 3815, 3815, 3815, 3828, 3829, 3815, 3830,
1268      3815, 3829, 3829, 3831, 3815, 3815, 3815, 3815, 3831, 3832,
1269      3815, 3815, 3815, 3832, 3823, 3823, 3815, 3833, 3824, 3833,
1270      3824, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1271 
1272      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1273      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1274      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1275      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1276      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1277      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1278      3825, 3825, 3826, 3826, 3827, 3827, 3815, 3828, 3828, 3829,
1279      3829, 3830, 3830, 3829, 3831, 3831, 3815, 3832, 3832, 3823,
1280      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1281      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1282 
1283      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1284      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1285      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1286      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1287      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1288      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1289      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1290      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3829, 3823,
1291      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1292      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1293 
1294      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1295      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1296      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1297      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1298      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1299      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1300      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1301      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1302      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1303      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1304 
1305      3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1306      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1307      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1308      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1309      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1310      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1311      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1312      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1313      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1314      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1315 
1316      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1317      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1318      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1319      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1320      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1321      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1322      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1323      3823, 3829, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1324      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1325      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1326 
1327      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1328      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1329      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1330      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1331      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1332      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1333      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1334      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1335      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1336      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1337 
1338      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1339      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1340      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1341      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1342      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1343      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1344      3823, 3823, 3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823,
1345      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1346      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1347      3823, 3823, 3823, 3823, 3815, 3823, 3815, 3815, 3823, 3823,
1348 
1349      3815, 3815, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1350      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1351      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1352      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1353      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1354      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1355      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1356      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1357      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1358      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1359 
1360      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1361      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1362      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1363      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1364      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1365      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1366      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1367      3823, 3823, 3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823,
1368      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3815, 3823, 3823,
1369      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1370 
1371      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1372      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1373      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1374      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1375      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1376      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1377      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1378      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1379      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1380      3823, 3823, 3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1381 
1382      3823, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
1383      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1384      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1385      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1386      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1387      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1388      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1389      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1390      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1391      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3829, 3829, 3823,
1392 
1393      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1394      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1395      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1396      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1397      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1398      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1399      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1400      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1401      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1402      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1403 
1404      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1405      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1406      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1407      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1408      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1409      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1410      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1411      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1412      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1413      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1414 
1415      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1416      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1417      3815, 3823, 3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823,
1418      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1419      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1420      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1421      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1422      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1423      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1424      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1425 
1426      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1427      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1428      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1429      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1430      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1431      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1432      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1433      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1434      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1435      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1436 
1437      3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1438      3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3815,
1439      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1440      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1441      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1442      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3829, 3823,
1443      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1444      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1445      3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1446      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1447 
1448      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1449      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1450      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1451      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1452      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1453      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1454      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1455      3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1456      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1457      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1458 
1459      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1460      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1461      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1462      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1463      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1464      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1465      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1466      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1467      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1468      3823, 3829, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1469 
1470      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1471      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1472      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1473      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1474      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1475      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1476      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1477      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1478      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1479      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1480 
1481      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1482      3823, 3815, 3815, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1483      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1484      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1485      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1486      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1487      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1488      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1489      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1490      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1491 
1492      3823, 3823, 3815, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1493      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1494      3823, 3823, 3823, 3823, 3829, 3823, 3815, 3823, 3823, 3823,
1495      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1496      3823, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
1497      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1498      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1499      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1500      3823, 3823, 3823, 3823, 3815, 3815, 3823, 3815, 3823, 3823,
1501      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1502 
1503      3823, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
1504      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1505      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1506      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1507      3823, 3823, 3823, 3815, 3815, 3823, 3815, 3823, 3823, 3823,
1508      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1509      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1510      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1511      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1512      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1513 
1514      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1515      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1516      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1517      3823, 3815, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1518      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1519      3823, 3823, 3829, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1520      3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1521      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1522      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1523      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1524 
1525      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1526      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1527      3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1528      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1529      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1530      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1531      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1532      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1533      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1534      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1535 
1536      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1537      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1538      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1539      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1540      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1541      3823, 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823,
1542      3823, 3823, 3823, 3823, 3829, 3823, 3815, 3823, 3823, 3823,
1543      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3815, 3823,
1544      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1545      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1546 
1547      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1548      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1549      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1550      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1551      3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1552      3815, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
1553      3823, 3823, 3823, 3815, 3815, 3823, 3815, 3823, 3815, 3823,
1554      3823, 3815, 3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1555      3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1556      3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1557 
1558      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1559      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1560      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1561      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1562      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1563      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1564      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3829, 3823, 3823,
1565      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1566      3823, 3823, 3823, 3823, 3815, 3815, 3823, 3815, 3823, 3823,
1567      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1568 
1569      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1570      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1571      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1572      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1573      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1574      3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823,
1575      3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823, 3823,
1576      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1577      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1578      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1579 
1580      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3815, 3815,
1581      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1582      3823, 3823, 3823, 3823, 3815, 3823, 3815, 3815, 3823, 3815,
1583      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3815,
1584      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3829, 3823, 3823,
1585      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1586      3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1587      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1588      3823, 3815, 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823,
1589      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1590 
1591      3815, 3823, 3823, 3823, 3815, 3815, 3823, 3823, 3823, 3823,
1592      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1593      3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1594      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1595      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1596      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1597      3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1598      3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1599      3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1600      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815,
1601 
1602      3823, 3823, 3829, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1603      3823, 3823, 3815, 3815, 3823, 3815, 3823, 3823, 3815, 3823,
1604      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1605      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1606      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1607      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1608      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1609      3815, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1610      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823,
1611      3823, 3823, 3815, 3823, 3815, 3815, 3815, 3823, 3823, 3823,
1612 
1613      3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1614      3823, 3815, 3815, 3815, 3823, 3823, 3823, 3815, 3823, 3823,
1615      3815, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823, 3815,
1616      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1617      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1618      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1619      3823, 3823, 3823, 3815, 3823, 3815, 3823, 3815, 3823, 3823,
1620      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1621      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
1622      3815, 3823, 3823, 3823, 3815, 3823, 3815, 3823, 3815, 3823,
1623 
1624      3823, 3815, 3823, 3823, 3823, 3815, 3815, 3823, 3823, 3823,
1625      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1626      3815, 3823, 3815, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
1627      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1628      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3815,
1629      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1630      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1631      3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1632      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1633      3815, 3815, 3823, 3823, 3815, 3823, 3823, 3815, 3815, 3823,
1634 
1635      3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1636      3823, 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1637      3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823, 3815, 3823,
1638      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1639      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1640      3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823,
1641      3823, 3815, 3823, 3823, 3823, 3815, 3815, 3815, 3823, 3823,
1642      3823, 3815, 3815, 3815, 3823, 3815, 3823, 3823, 3823, 3823,
1643      3815, 3823, 3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1644      3815, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
1645 
1646      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
1647      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1648      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1649      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1650      3815, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3815, 3823,
1651      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3815,
1652      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1653      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1654      3815, 3815, 3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823,
1655      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3815, 3815,
1656 
1657      3823, 3823, 3815, 3823, 3815, 3823, 3823, 3815, 3815, 3815,
1658      3815, 3815, 3815, 3815, 3815, 3823, 3823, 3815, 3815, 3823,
1659      3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823,
1660      3815, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1661      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1662      3823, 3823, 3823, 3823, 3823, 3815, 3815, 3815, 3815, 3823,
1663      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1664      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1665      3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3815, 3823,
1666      3815, 3823, 3815, 3815, 3823, 3823, 3823, 3823, 3823, 3823,
1667 
1668      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3815, 3815, 3815,
1669      3815, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
1670      3823, 3823, 3823, 3823, 3823, 3823, 3815, 3815, 3823, 3823,
1671      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1672      3815, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823,
1673      3823, 3823, 3823, 3815, 3823, 3815, 3823, 3823, 3823, 3823,
1674      3823, 3823, 3823, 3823, 3823, 3815, 3823, 3823, 3823, 3823,
1675      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
1676      3823, 3823, 3823, 3815, 3823, 3823, 3815, 3823, 3823, 3823,
1677      3823, 3823, 3815, 3823, 3823, 3823, 3823, 3823, 3823, 3815,
1678 
1679      3823, 3823, 3823, 3815, 3823, 3815, 3815, 3823, 3823, 3823,
1680      3823, 3823, 3815, 3815,    0, 3815, 3815, 3815, 3815, 3815,
1681      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
1682      3815, 3815, 3815
1683     } ;
1684 
1685 static const flex_int16_t yy_nxt[10914] =
1686     {   0,
1687        18,   19,   20,   21,   22,   23,   22,   18,   18,   18,
1688        18,   18,   22,   24,   25,   26,   27,   28,   29,   18,
1689        30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
1690        40,   41,   42,   43,   44,   18,   18,   18,   45,   46,
1691        24,   25,   26,   27,   28,   29,   18,   30,   31,   32,
1692        33,   34,   35,   36,   37,   38,   39,   40,   41,   42,
1693        43,   44,   18,   18,   18,   45,   48,   49,   50,   48,
1694        49,   50,   53,   54,   53,   54,   55,  120,   55,   58,
1695        59,   60,   61,  121,   22,   58,   59,   60,   61,   86,
1696        22,   64,   65,   66,   64,   65,   66,   87,  161,  161,
1697 
1698        85,   88,  351,   51,  120,   86,   51,  168,  168,   56,
1699       121,   56,  171,   75,   76,   77,   78,   62,   22,   75,
1700        76,   77,   78,   62,   22,   81,   82,   83,   67,   98,
1701        86,   67,   19,   20,   21,   69,   70,   71,   19,   20,
1702        21,   69,   70,   71,   81,   82,   83,  122,  109,  178,
1703       178,   79,   72,  160,  171,   86,   98,   79,   72,   86,
1704       138,   90,   84,   90,   90,   86,   90,  179,  110,  799,
1705        73,   86,   90,   86,  122,  109,   73,  426,   87,   72,
1706       160,   84,   88,  161,  161,   72,  113,  138,  111,  177,
1707       163,  176,  131,  163,  114,  110,   99,   86,   86,   91,
1708 
1709        92,   93,  112,  100,   94,  115,   86,  101,  189,   95,
1710       102,   96,   86,  113,   86,  111,  180,   86,   97,  131,
1711       174,  114,   86,   99,   86,  168,  168,   92,   93,  112,
1712       100,   94,  115,  171,  101,  189,   95,  102,   96,  165,
1713        86,  165,  165,  180,  165,   97,  103,  174,  116,  171,
1714       104,  117,  182,  105,  183,  106,  107,  301,  118,   85,
1715       119,   85,   85,  339,   85,  343,  108,  169,   86,   86,
1716        85,   86,   86,  103,  167,  116,  123,  104,  117,  182,
1717       105,  183,  106,  107,  124,  118,  181,  119,  127,   86,
1718       125,  185,  128,  108,  126,   86,  157,   86,   86,  149,
1719 
1720       158,  150,   86,  123,  159,  186,  129,  166,  130,   86,
1721       151,  124,  164,  181,   86,  127,  152,  125,  185,  128,
1722       162,  126,   86,  157,  153,   86,  149,  158,  150,   86,
1723       491,  159,  186,  129,  154,  130,  132,  151,  155,  156,
1724       133,  184,  163,  152,  134,  163,   86,   86,  179,   86,
1725       135,  153,   90,  136,   90,   90,  190,   90,  246,   86,
1726       137,  154,   86,  132,  198,  155,  156,  133,  184,   86,
1727       170,  134,  170,  170,   86,  170,  175,  135,  175,  175,
1728       136,  175,  177,  190,   86,  246,  187,  137,  139,  199,
1729       173,  198,  140,   85,  202,   85,   85,   86,   85,  188,
1730 
1731       231,  266,  141,  142,   85,  143,   90,   86,   90,   90,
1732        86,   90,   86,  187,   86,  139,  199,   90,  176,  140,
1733        86,  202,  191,  192,  200,  345,  188,  231,  266,  141,
1734       142,  193,  143,  144,  205,   86,  145,  194,  214,  195,
1735       171,   86,  201,  146,   91,  196,  197,  147,  148,  191,
1736       192,   86,   86,  209,   86,   86,   86,   86,  193,  203,
1737       144,  205,   86,  145,  194,  214,  195,  211,  204,  201,
1738       146,  213,  196,  197,  147,  148,  206,  207,  210,  230,
1739       209,   86,  212,  219,  208, 1254,  203,   86,  169,   86,
1740        86,  167,   86,   86,  211,  204,  215,  222,  213,  216,
1741 
1742       221,  229,   86,  206,  207,  210,  230,  220,   86,  212,
1743       166,  208,  217,  218,   86,   86,   86,  223,  224,   86,
1744        86,  234,  225,  215,  222,  227,  216,  221,  229,  232,
1745       228,  238,  235,   86,  220,  164,  233,  236,  226,  217,
1746       218,   86,   86,   86,  223,  224,  237,  240,  234,  225,
1747        86,   86,  227,   86,   86,  162,  232,  228,  238,  235,
1748       239, 1415,  241,  233,  236,  226,   86,  251,  242,   86,
1749        86,   86,  243,  237,  240,  245,  247,  248,  244,   86,
1750       252,   86,   86,   86,  257,  253,  249,  239,  258,  241,
1751        86,   86,  250,   86,  251,  242,  259,  269,   86,  243,
1752 
1753        86,  260,  245,  247,  248,  244,  254,  252,   86,  261,
1754       267,  257,  253,  249,  264, 3815,   86,  255,   86,  250,
1755        86,  256,  270,  259,  269,  265,  262,  273,  260,  263,
1756        86,  271,  268,  254,   86,   86,  261,  267,   86,  274,
1757       275,  264,   86,  272,  255, 3815,  277,   86,  256,  270,
1758       278,  276,  265,  262,  273,   86,  263, 3815,  271,  268,
1759        86,   86, 3815,   86, 3815,  279,  274,  275,   86,  165,
1760       272,  165,  165,  277,  165,  178,  178,  278,  276,  170,
1761       280,  170,  170,   90,  170,   90,   90,  281,   90,  171,
1762       283,  175,  279,  175,  175, 3815,  175,  284,  288,   86,
1763 
1764       285,  282,   86,  286,   86,  290,  291,  280,  293,   86,
1765       287, 3815,  289,   86,   86,   86,  292,  283,   86,   86,
1766       294,  173,   86,  295,  284,  288,  299,  285,  282,  300,
1767       286,   86,  290,  291,  296,  293,   86,  287,   86,  289,
1768       297,   86,  298,  292,   86,  310,  311,  294,   86,  323,
1769       295,  314,  312,  299,  302,   86,  300,  313,  303,   86,
1770        86,   86,  317,  318,  315,  316,   86,  297,  319,  298,
1771        86,   86,  310,  311,  321,  304,  323,   86,  314, 3815,
1772       324, 3815,   86,  322,   86,  303,   86,   86, 3815,  317,
1773       318,  315,  316,   86,  325,  328,  320,   86, 3815,  349,
1774 
1775        86,  321,  304,  305,   86,   86,   86,  324,  306,  326,
1776       322,  329,  327,  307, 3815,  330, 3815,  338,  337,  308,
1777       309,  325,  328,  320,   86,   86,   86,  336,   86,  340,
1778       305,   86,  341,   86,  344,  306,  326,   86,  329,  327,
1779       307,   86,  330,  342,  338,  337,  308,  309,  331,   86,
1780       350,  332,  346,  333,  336,   86,  340, 3815,  352,  353,
1781      3815,  344,  348,  354,   86,  334,  347,  335,   86,  357,
1782       342,  355,   86,  358,   86,  331,  356,  350,  332, 3815,
1783       333,  359,   86, 3815,   86,  361,  353,   86,  364,  348,
1784        86,   86,  334,  347,  335,   86,   86,  360,  355,  365,
1785 
1786       358,   86,   86,  356,   86,  362,   86,  366,  359,  367,
1787       368,  369,  361,  371,  363,  364,  370,  372,   86,   86,
1788        86,   86,  373,   86,  360,  374,  365,   86,   86,  378,
1789       375,   86,  362,  376,  366,  382,  367,  368,  369,   86,
1790       371,  363,  381,  370,  383,  377,  384,   86, 3815,   86,
1791        86,   86,  374,  379,  380,  386,   86,  375,   86,  385,
1792       376,   86,   86,   86,  388,  387,  389,   86,   86,  381,
1793       390,  383,  377,  384,  391,  392,  393,  395,   86, 3815,
1794       379,  380,  386,  394,   86,   86,  385,  398,  396,   86,
1795        86,  399,  387, 3815, 3815,  401,   86,  390,   86,   86,
1796 
1797       403,  402,  392,  393,   86,  404,   86,  405,  400,   86,
1798       394,  397, 3815,   86,  406,  171,   86,  407,  399,   86,
1799        86,   86,  401,   86,  409,  408,   86,  403,  402,   86,
1800       410,  411,  404,  412,  405,  400,  414,  413,  397,   86,
1801       416,  406,  415,  418,  407,  419,   86,  417,  421,  422,
1802        86,  409,  408,   86,   86,   86,   86,  420,   86,   86,
1803       412,   86,   86,   86,  413,  423,  424,  416,   86,  415,
1804       418,  425,  419,  427,  417,  421,   86,  428, 3815,  429,
1805       437,   86,   86,  430,  420,  431,  434, 3815,   86,   86,
1806       433,   86,  423,  424,   86,  438, 3815,   86,  425,  432,
1807 
1808       427,  435,  436,   86,  428,   86,  429,  437,  439,   86,
1809       430,   86,  431,  434,   86,  440,  441,  433,  442,   86,
1810        86,   86,  443,  447,  448,  445,  432,   86,  435,  436,
1811       450,  446,  452,  451, 3815,  439,  454,   86,   86,  444,
1812       453,   86,   86,  441,  455,   86,  457,   86,  449,  443,
1813        86,   86,  445,   86,   86,   86,   86,  450,  446,  452,
1814       451,  456,   86,  454,  458,  459,  444,  453,   86,   86,
1815        86,  455,   86,  457,   86,  449,  460,  461,  465,  464,
1816       467,  462, 3815, 3815, 3815,  466,   86,  476,  456,  484,
1817       513,  458,  459,  475,   86,   86,   86,  477,  463, 3815,
1818 
1819       493,  485,   86,  460,  461,   86,  464,  467,  462,   86,
1820        86,   86,  466,   86,  476,   86,  484,  486,  489,   86,
1821       475,  492,   86,  490,  477,  463,  468,   86,  485,  487,
1822       488,  469,   86,  494,  470,  496,  495, 3815,  502,  471,
1823       472,  473,  474,   86,  486,   86, 3815,   86,  492,   86,
1824        86, 3815,  497,  468,   86,  503,  487,  488,  469, 3815,
1825       494,  470,  496,  495,   86,   86,  471,  472,  473,  474,
1826       478,  500,  479,  498,  499,  501, 3815,   86,  504,  497,
1827       505,  509,  503,   86,  480,  481,  482,  508,  483,   86,
1828       506,  507,   86,   86,   86, 3815,   86,  478,  500,  479,
1829 
1830       498,  499,  501,   86,   86,  504,   86,  505,  509,   86,
1831       512,  480,  481,  482,  508,  483,  510,  506,  507,  511,
1832       520,  514,   86,  515,   86, 3815,   86,  518, 3815,  519,
1833      3815,  521,  516, 3815,   86,  522,  524,  512,  525,  517,
1834       527,  523,  526,  510,  533, 3815,  511,   86,  514,  532,
1835       515,   86,   86,   86,  518,   86,  519,   86,  521,  516,
1836        86,  528,  522,  524,  534,  525,  517,   86,  523,  526,
1837        86,  533,   86,  535,  529,  536,  532,  530, 3815,  531,
1838      3815,  550,  568,  549, 3815,   86,  552,  569,  528,  577,
1839        86,  553, 3815,  579,   86, 3815,   86,   86,   86,  551,
1840 
1841        86,  529,  536,   86,  530,   86,  531,  537,  550,  538,
1842       549,  566,  554,  552,   86,  539,  555,  557,  553,  540,
1843       579,   86,  572,   86,  541,   86,  551,  542,  171,  567,
1844        86,  592,  556,   86,  537, 3815,  538, 3815,  566,  554,
1845        86, 3815,  539,  555,  557,  570,  540,   86, 3815,  572,
1846      3815,  541,  571,  573,  542,  543,  567,  544,  575,  556,
1847       576,   86,  574,   86,  580, 3815,   86,  593,   86,  578,
1848       545,   86,  570,  546,   86,  547,   86,  548,   86,  571,
1849       573,   86,  543,  586,  544,  575,  581,  576, 3815,  574,
1850        86,  580,  582,   86,  593, 3815,  578,  545, 3815,   86,
1851 
1852       546,  583,  547, 3815,  548,  558,  559,  584,  588,  589,
1853       586,  591,  595,  581,  587,  560,  561,  562,  563,  564,
1854        86,   86,  565,   86,   86,  585,  590,   86,  583,   86,
1855        86,   86,  558,  559,  584,  588,  589,  596,  591,  595,
1856       594,  587,  560,  561,  562,  563,  564,   86,   86,  565,
1857        86,  597,  585,  590,  598,  599,   86,  600,  601,  602,
1858      3815,  603,  604,  605,  596,  606,   86,  594,   86,   86,
1859       608,  609,  607, 3815,   86, 3815,   86, 3815,  616,   86,
1860       613,  598,  599,   86,  600,   86, 3815,   86,  603,  604,
1861       605, 1013,  606,   86,  614,   86,  618,  608,  609,  607,
1862 
1863       610,  611,  617,   86,   86,  616,  620,  613,   86,  615,
1864        86,  619,  635,  621,  632,   86,  633,   86,  612,  637,
1865        86,  614,   86,  618,  650,   86,   86,  610,  611,  617,
1866       622,  623,  634,  620,   86,   86,  615,  636,  619,  635,
1867       621,  638,  624,  633,  625,  612,   86,   86,  642,   86,
1868       641,   86,  639, 3815,   86,   86,   86,  622,  623,  634,
1869       640, 3815, 3815, 3815,  636,  644,  646, 3815,  638,  624,
1870        86,  625,  626,   86,   86,  642,  645,  641,  647,  639,
1871       627,  628,  643,   86,  629,  630,  653,  640,  631,   86,
1872        86,   86,  644,   86,   86,  649,  648,  651,   86,  626,
1873 
1874        86, 3815,  652,  645,  655,  647,  656,  627,  628,  643,
1875        86,  629,  630,  653,  654,  631, 3815,  659,  663,   86,
1876        86,   86,  649,  648,  651,   86,   86,  657,   86,  652,
1877       660,  655,   86,  656,  661,  658,  662,   86,  665,  779,
1878       664,  654,   86,   86,  659,  663,   86,  666,  667,  668,
1879       670,   86,  669,   86,  657,  672,  674,  660,  675, 3815,
1880        86,  661,  658,  662,   86,  665,   86,  664,  673,   86,
1881      3815,   86,   86,   86,  666,  667,  668,  670,   86,  669,
1882       671,   86,  672,  676,   86,  675,   86,  677,   86,   86,
1883       678,  679,  680,  681,  682,  673,   86,  683,   86,  686,
1884 
1885       688,   86,  684,  711,  685,  690,   86,  671,   86,   86,
1886       676,   86,   86,   86,  677,   86,  687,  678,  679,  680,
1887       681,  682,  689,   86,  683,  692,  686,  691,  693,  684,
1888       711,  685,   86,  694,  698,   86,  699,   86,  697,  695,
1889       701,  700,  696,  687,  702,   86,   86,   86,   86,  689,
1890        86,   86,  703, 3815,  691,  693,  707,   86,   86,   86,
1891       694,  698,   86,  699,  704,  697,  695,  706,  700,  696,
1892       708,  702,   86, 3815,  713,   86,   86,  710,   86,  703,
1893        86,  712,  709,  707,  714,  716,   86,  705,   86,  727,
1894      3815,  715,  729,   86,  706,   86,   86,  708,  726,  717,
1895 
1896        86,  713,   86,   86,  710,   86,   86, 3815,  712,  709,
1897       728,  714,  716,   86,  705,   86,  727,  731,  715,  729,
1898       730, 3815,   86,  748,  732,  726,  717,  718,   86, 3815,
1899        86, 3815,  719,  733,  720,   86,  736,  728,  739,   86,
1900       721,  740,  722, 3815,  731,  723,  724,  730,   86,   86,
1901       748,  732,  725,   86,  718,  737,   86, 3815,  734,  719,
1902       733,  720,  735,  736,  742,  739,  741,  721,  740,  722,
1903       745,  744,  723,  724,  743,  738,  746,   86,  749,  725,
1904        86,   86,  737,   86,   86,  734,  747, 3815,  751,  735,
1905        86,  753,  750,  741,   86,  752,   86,  745,  744,  754,
1906 
1907        86,  743,  738,  746,   86,  749,   86,   86,  755,  756,
1908       758,   86,  759,  747,   86,  751,  757,   86,  753,  750,
1909       760,   86,  752,  762,  763,  764,  754,  766,   86,  761,
1910        86,  765,   86,  768,   86,  755,  756,  758,  767,  759,
1911       771,   86,   86,  757,   86,   86, 3815,  760,   86,  769,
1912       762,  763,  764,   86,  171,  770,  761,   86,  765,   86,
1913       768,  772,  773,  774,  775,  767,  777,  776,   86,   86,
1914       780,   86,   86,   86,  782, 3815,  769,  778,   86,  783,
1915       781,  785,  770,  784, 3815,  787,   86,  786,  772,  773,
1916       774,  775,   86,  777,  776,   86,   86,   86,   86,  788,
1917 
1918        86,  789,   86,  796,  778,   86,   86,  781,  785,  790,
1919       784,   86,  787,  793,  786,  794,  791,   86,  797,  792,
1920       795,   86,  798,  800,   86,   86,  788,   86,  789,  801,
1921       796,  802,  803,  804,  812,  806,  790, 3815,  805,  808,
1922       793,  810,  807,  791,   86,   86,  792,   86,   86,   86,
1923       809,  811,  813,   86,   86,   86,   86,  818,   86,   86,
1924       814,  812,  806,   86,   86,   86,  808,  815,  810,  807,
1925       817,   86,  816,  820,   86,  821,   86,  809,  811,  813,
1926        86,  819,   86,  822,   86,  823,  826,  814,   86,   86,
1927       824,  825,   86,   86,  815,  831,   86,  817,   86,  816,
1928 
1929       820,  827,  821,   86,  829,   86,  828,  832,  819,  833,
1930       822, 3815,  823,  826,   86,   86,   86,  824,  825,  830,
1931      3815,  839,   86,   86, 3815,  845,   86,   86,  827,   86,
1932       834,  829,  838,  828,  832,  835,  833,   86,  836,  837,
1933       840,   86,  841,  844,  846, 3815,  830,   86,  839,   86,
1934       842,  843,  845,   86,   86, 3815,   86,  834,  848,  838,
1935      3815,  847,  835,  851,  849,  836,  837,  840,  853,  841,
1936       844,   86,   86,   86,  852,  854,   86,  842,  843,   86,
1937       856,  859,   86,  855,  857,  848,  850,   86,  847,   86,
1938       851,  849,   86,  860,   86,  853,   86,   86,  858,  861,
1939 
1940        86,  852,  854,   86,   86,  862,  863,  856,  859,  864,
1941       855,  857,   86,  850,   86,  865,  866,  867,  870,  868,
1942       860,   86, 3815,   86,  869,  858,   86,  871,   86,   86,
1943       877,   86,  862,  863,  872,  876,  864,   86,  875,   86,
1944       873,  874,  865,  866,  867,  881,  868,  878,   86,   86,
1945        86,  869,   86,  879,  871,  880,   86,  877,   86,   86,
1946       883,  872,  876,  882,  884,  875,   86,   86,   86,   86,
1947       885,   86,  881,  886,  878,  898,  887,  888,   86,  890,
1948       879,  892,  880,  889,  891,  908,   86,  893,  899, 3815,
1949       882,  884,   86, 3815,   86,   86,   86,   86,  894,   86,
1950 
1951       886,   86,   86,  887,  888,  895,  900,   86,  892,  901,
1952       889,   86,  896,  897,  893,  899,  902,   86,  903,  909,
1953        86,  904,  905,   86,   86,  894,  914,  915, 3815,   86,
1954      3815,   86,  895,  900,   86,  906,  901, 3815,  916,  896,
1955       897,   86,   86,  902,   86,  903,  909,  910,  904,  905,
1956       907,  912,   86,  914,  915,  918,  913,  911,  917,   86,
1957       923,  919,  906,   86,  920,  916,   86,   86,   86,   86,
1958       921,  924,  922,   86,  910,  925,  927,  907,   86,   86,
1959        86,   86,  918,   86,  911,  917,  926,  923,  919,  928,
1960       929,  920,  931,  935,   86,  930,  932,  921,  924,  922,
1961 
1962        86,   86,   86,  927,   86,  933,  934,   86,  936,   86,
1963      3815,  937,  938,  926,  942,   86,  928,  929,   86,  931,
1964        86,  939,  930,  932,   86,   86, 3815,   86,  940,   86,
1965      3815,  943,  933,  934,   86,  936,  941,   86,  937,  938,
1966        86,  942,  944,  945,   86,  946,  947, 3815,  939,  948,
1967      3815,  949,   86,   86,   86,  940,  953,   86,  943,   86,
1968       950,  951,  954,  941,  952,  956, 3815,  957, 3815,  944,
1969       945,  958,  946,  947,   86,   86,  948,  955,  949,   86,
1970        86,   86,   86,  953,  959,   86,  961,  950,  951,  954,
1971        86,  952,  956,   86,  957,   86,  962,  960,  958,  963,
1972 
1973        86,  970,  964,  965,  955,   86,   86,  969,  968,  966,
1974       967,  959,  971,  961,  974,  972,   86,   86,  975,   86,
1975       976,   86,   86,  962,  960,   86,  963,   86,  970,  964,
1976       965,   86,   86,   86,  969,  968,  966,  967,  973,  971,
1977       171,  977,  972,  978,   86,  975,   86,  976,  979,  980,
1978       981,  983,  984,   86,  982,  987,   86,   86,  989, 3815,
1979       988,   86,  992,  985,   86,  973,   86,   86,  977, 3815,
1980       978,  986,  995,  990,   86,  979,  980,  981,  983,   86,
1981        86,  982,  996, 3815,  991,  989,  994,   86,  993,   86,
1982       985,   86,   86,   86,   86,   86,   86,   86,  986,  995,
1983 
1984       990,  997,  999,   86, 1000,  998, 1001, 3815, 1002,  996,
1985      1003,  991,   86,  994,   86,  993, 1020,   86, 1004, 3815,
1986      1014, 1015, 1028,   86, 1012,   86,   86,   86,  997, 3815,
1987        86, 1000,  998, 1001,   86, 1002,   86, 1003, 1016,   86,
1988      1018, 1024, 1019, 1020, 3815, 1004, 1005, 1014, 1015, 1006,
1989      1017, 1012, 1021, 1007,   86,   86, 1008,   86, 1022,   86,
1990        86,   86, 1023, 1009, 1010, 1016, 1011, 1018, 1024, 1019,
1991      1038,   86, 1025, 1005, 1026,   86, 1006, 1017, 3815, 1021,
1992      1007,   86, 1077, 1008,   86, 1022, 1041,   86,   86, 1023,
1993      1009, 1010,   86, 1011, 1039, 1027, 3815, 1038, 1037, 1025,
1994 
1995        86, 1026,   86, 1040, 1042,   86, 1045,   86, 3815,   86,
1996      1046, 3815,   86, 1041,   86, 3815, 3815, 1047,   86, 1043,
1997      1048, 1039, 1027, 1029, 1030, 1037, 1031, 3815,   86, 1032,
1998      1040, 1042,   86, 1045, 1033, 1044, 1049, 1046,   86,   86,
1999      1034, 1035,   86, 1036, 1047, 1050, 1043, 1048, 1055,   86,
2000      1029, 1030, 1051, 1031, 1053, 1056, 1032, 1052, 3815, 1054,
2001        86, 1033, 1044, 1049, 1057, 1058, 1060, 1034, 1035,   86,
2002      1036, 1059, 1050, 1061,   86, 1055, 1062,   86, 3815, 1063,
2003      3815, 1053, 1056, 1083,   86,   86, 1054,   86,   86, 1064,
2004        86, 1057, 1058, 1060,   86,   86, 1065,   86, 1059, 1067,
2005 
2006        86,   86, 1066, 1062, 1069, 1068, 1063,   86, 1070,   86,
2007      1071, 1079, 1072, 3815, 1073,   86, 1064,   86, 1074,   86,
2008        86, 1075, 1078, 1065,   86,   86, 1067,   86, 1076, 1066,
2009        86, 1069, 1068,   86, 1082, 1070,   86, 1071,   86, 1072,
2010        86, 1073, 1080, 1084,   86, 1074, 1085, 1081, 1075, 1078,
2011      1086, 1087,   86, 1088,   86, 1076,   86,   86, 1089, 1092,
2012      1090, 1082, 1093, 3815, 1091, 1094, 3815, 1095, 3815, 1096,
2013      1084, 1098, 1097, 1085,   86,   86,   86, 1086,   86, 1099,
2014      1088,   86, 1108,   86,   86,   86, 1092, 1090,   86,   86,
2015        86, 1091,   86,   86, 1095, 1100, 1096, 1102, 1098, 1097,
2016 
2017      1101, 1104,   86, 1103, 1107, 1105, 1099, 1106,   86,   86,
2018      1109,   86, 1110, 1113,   86,   86,   86, 1111, 1112,   86,
2019        86, 1114, 1100,   86, 1102, 1115,   86, 1101,   86, 3815,
2020      1103,   86, 1105,   86, 1106,   86,   86, 1109, 1116, 1110,
2021      1113, 1118, 1117, 1121, 1111, 1112, 1119,   86, 1114, 1120,
2022      1122,   86, 1115, 1123, 1125, 3815,   86, 1126, 1124,   86,
2023      1127,   86, 1129,   86,   86, 1116,   86,   86, 1118, 1117,
2024      1121, 1128,   86, 1119, 1134, 1130, 1120, 1122,   86,   86,
2025        86, 1125, 1131,   86, 1126,   86, 1132, 1127, 1135, 1129,
2026      1136,   86, 1137, 3815, 1133, 3815,   86, 1138, 1128,   86,
2027 
2028      1139, 1134, 1130,   86, 1140, 1141, 3815, 1144, 1149, 1131,
2029        86,   86,   86, 1132,   86,   86, 1145, 1136, 1142, 1137,
2030        86, 1133,   86,   86, 1138,   86, 1143, 1139, 1146, 1147,
2031      1150, 1140, 1141,   86, 1144, 1151, 1148, 1155,   86, 1153,
2032        86, 1152, 1156, 1145,   86, 1142, 1154,   86,   86, 1158,
2033        86,   86,   86, 1143, 1157, 1146, 1147, 1150,   86,   86,
2034      1159,   86, 1151, 1148, 1155, 1161, 1153,   86, 1152, 1156,
2035      1160,   86,   86, 1154, 3815, 1162, 1158, 1163,   86, 1164,
2036      1166, 1157, 1165, 1167,   86,   86, 1170,   86, 1168,   86,
2037      1171,   86, 1161,   86, 1169,   86, 1173, 1160,   86, 1172,
2038 
2039      1174,   86, 1162, 1176, 1163, 1177, 1164, 1166, 3815, 1165,
2040      1167, 1178,   86,   86, 1182, 1168, 1175, 1179,   86, 3815,
2041      1185, 1169,   86,   86, 1180,   86, 1172, 1174,   86, 1184,
2042      1186, 1190, 1181, 1187,   86,   86,   86,   86, 1178,   86,
2043      1183, 1182, 1191, 1175, 1179, 1188,   86, 1189, 1192,   86,
2044      3815, 1180,   86, 3815,   86,   86, 1184,   86, 1194, 1181,
2045      1187,   86,   86,   86, 1193, 1198, 1195, 1183, 1202, 1191,
2046      1199, 1200, 1188,   86, 1189,   86, 1201, 1203, 1207, 1196,
2047        86, 1197,   86,   86, 3815, 1194,   86, 1206, 1205, 1204,
2048        86, 1193, 3815, 1195,   86, 1202,   86,  171, 1200,   86,
2049 
2050        86, 1251, 1221, 1201, 1203, 1207, 1196, 1208, 1197,   86,
2051        86, 1209, 1210, 1211, 1206, 1205, 1204, 1213, 1222, 1212,
2052      3815, 1220, 3815,   86,   86,   86,   86,   86,   86, 1221,
2053      1223, 1224, 3815,   86, 1208, 1225, 3815,   86, 1209, 1210,
2054      1211,   86,   86,   86, 1213, 1222, 1212, 1214, 1220, 1215,
2055      1226, 1227, 1228, 1216, 1229, 1217, 3815, 1223,   86, 1231,
2056      1218, 1230, 1225, 1232,   86, 1219, 1234,   86, 1233, 3815,
2057      3815,   86,   86,   86, 1214, 3815, 1215, 1226, 1227, 1228,
2058      1216, 1229, 1217,   86,   86, 1235, 1231, 1218, 1230, 1238,
2059      1236, 3815, 1219, 1234, 1241,   86, 1239, 1242,   86, 1244,
2060 
2061      3815,   86, 1237, 1248, 1245, 3815, 1240, 1243, 1253,   86,
2062        86, 1249, 1235,   86, 1246, 1250, 1238, 1236,   86,   86,
2063        86, 1241, 1247, 1239, 1242,   86,   86,   86, 1252, 1237,
2064      1248, 1245,   86, 1240, 1243,   86, 1255,   86, 1249, 1256,
2065        86, 1246, 1250, 1257,   86, 1258, 3815, 1266, 1268, 1247,
2066      3815,   86, 1269, 3815,   86, 1267, 3815, 1270, 3815, 3815,
2067        86,   86,   86, 1271, 3815, 1279, 1256,   86,   86, 1272,
2068      1257, 3815, 1258, 1259, 1266, 1268, 1273,   86, 1260, 1269,
2069      1261, 1275, 1267,   86, 1270,   86, 1262, 1276,   86,   86,
2070      1271, 1263, 1264, 1274,   86,   86, 1272,   86, 1265,   86,
2071 
2072      1259, 1277, 1280, 1273,   86, 1260, 1278, 1261, 1275,   86,
2073      1286, 1281, 1282, 1262, 1276, 1289, 1283,   86, 1263, 1264,
2074      1274,   86, 1284, 1285,   86, 1265,   86,   86, 1277, 1280,
2075      1287,   86,   86, 1278, 1288, 1290, 1291,   86, 1281, 1282,
2076      1293,   86, 1292, 1283,   86, 1294, 1295,   86, 1296, 1284,
2077      1285, 1300, 1297,   86,   86, 1299,   86, 1287, 1298,   86,
2078      1301, 1288, 1290, 1291,   86, 1306,   86, 1293,   86, 1292,
2079        86, 1303, 1302, 1295, 1304, 1296,   86,   86,   86, 1297,
2080        86,   86, 1299,   86, 1305, 1298, 1311, 1301, 1307, 1308,
2081      1309,   86, 1306,   86, 1310,   86, 1312,   86, 1303, 1302,
2082 
2083      1313, 1304, 1319, 1314,   86, 3815,   86,   86,   86, 1315,
2084      3815, 1305,   86, 1311,   86, 1307, 1308, 1309, 1316, 1318,
2085      1320, 1310,   86, 1312, 1317,   86,   86, 1321,   86, 1322,
2086      1314, 1323,   86, 1324,   86, 1325, 1315, 1326,   86, 1327,
2087        86,   86, 1329,   86, 3815, 1316, 1318, 1320, 1330, 1328,
2088      1331, 1317, 1332, 3815, 1321,   86, 1322,   86, 1323,   86,
2089      1324,   86, 1325, 1333, 1326, 1341, 1327,   86,   86, 1329,
2090        86, 1334, 1335, 1336, 1338,   86, 1328, 1339, 1337, 1332,
2091        86, 1340,   86,   86, 1342,   86, 1345, 1343, 1349,   86,
2092      1333, 1344, 1341,   86,   86, 1347, 1351,   86, 1334, 1335,
2093 
2094        86, 1338,   86, 1346, 1339,   86,   86, 1348, 1340,   86,
2095      1350, 1342,   86, 1345, 1343, 1352, 1353,   86, 1344,   86,
2096        86, 1355, 1347, 1354, 1358, 1356, 1357,   86,   86, 1360,
2097      1346, 3815,   86, 1359, 1348, 3815,   86, 1350,   86, 1361,
2098        86, 1362, 1352, 1353, 1364, 1363,   86,   86, 1355,   86,
2099      1354, 1358, 1356, 1357, 1365,   86, 1360,   86, 1366,   86,
2100      1359, 1367, 1369,   86, 1368, 1370, 1361,   86, 1362,   86,
2101        86, 1364, 1363, 1373, 1372,   86, 1374, 1371, 1375, 1377,
2102      1380, 1365,   86,   86, 1378, 1366,   86,   86, 1367, 1381,
2103      1376, 1368,   86, 1379,   86,   86, 1382,   86,   86, 1393,
2104 
2105      1373, 1372,   86, 1374, 1371, 1375, 1377,   86,   86, 1383,
2106      1384, 1378,   86, 1385, 1387, 1389, 1386, 1376, 3815, 1391,
2107      1379,   86, 1388, 1390,   86, 1392,   86, 1406,   86, 3815,
2108        86,   86,   86, 1396, 1399, 1394, 1383, 1384,   86, 1395,
2109      1398, 1400, 1389, 1386,   86,   86,   86,   86,   86, 1388,
2110      1390,   86, 1392,   86, 1397,   86, 1401,   86,   86,   86,
2111      1396, 1399, 1394,   86, 1402,   86, 1395, 1398, 1400, 1403,
2112      1404, 1405,   86, 1407, 1410, 1408, 1411, 1409,   86,   86,
2113      1412, 1397, 3815, 1401,   86,   86,   86,   86, 3815, 1421,
2114      3815, 1402, 1417,   86, 1413, 3815, 1403, 1404, 1405,   86,
2115 
2116      1434,   86, 1408, 1411, 1409,   86, 1414, 1412, 1416,   86,
2117        86, 1419, 1418,   86, 1420,   86,   86,   86, 1422, 1417,
2118        86, 1413,   86, 1425, 1423, 1424, 1429, 1426, 1432, 1428,
2119       171, 1427,   86, 1414, 1435, 1416, 3815,   86, 1419, 1418,
2120        86, 1420, 1430,   86,   86, 1422,   86,   86,   86, 1431,
2121      1425, 1423, 1424, 1429, 1426,   86, 1428, 1433, 1427, 1436,
2122        86,   86, 1437, 1438,   86, 3815,   86, 1439, 1441, 1430,
2123      1442,   86, 3815,   86, 1440, 1444, 1431, 1443, 1447, 1446,
2124      1445,   86, 1450,   86, 1433,   86, 1436,   86,   86, 1437,
2125      1438, 1452,   86, 3815, 1439, 1441,   86, 1442,   86,   86,
2126 
2127      1448, 1440, 1444,   86, 1443, 1447, 1446, 1445, 1449,   86,
2128      1451, 1453,   86, 1454,   86, 1455,   86, 1456, 1452, 1457,
2129        86, 1462, 1461,   86,   86,   86, 1464, 1448, 1458, 1463,
2130      1459, 3815, 1465, 1460, 1467, 1449,   86, 1451, 1453, 1474,
2131      1454,   86, 1455, 3815, 1456,   86, 1457,   86, 1462, 1461,
2132      1466,   86,   86,   86, 1468, 1458, 1463, 1459,   86, 1465,
2133      1460, 1467,   86,   86, 1469, 1470, 1471, 1472, 1475, 1473,
2134      1477,   86, 1476,   86, 1478,   86, 1479, 1466, 1480, 3815,
2135      1481, 1468,   86,   86,   86,   86,   86, 1483,   86, 1484,
2136        86, 1469, 1470, 1471, 1472, 1475, 1473, 1477, 1486, 1476,
2137 
2138        86, 1478,   86,   86, 1482, 1480, 1485, 1481, 1487,   86,
2139        86,   86,   86, 1488, 1483, 1491, 1484, 1489, 1492, 1493,
2140        86,   86, 1494, 1495,   86, 1486, 1490,   86, 1496,   86,
2141        86, 1482, 1499, 1485,   86, 1487, 1497,   86,   86, 1498,
2142      1488,   86, 1491, 1500, 1489, 1492, 1493, 1501,   86, 1494,
2143      1495,   86, 1503, 1490,   86, 1496, 1504,   86, 1502, 1499,
2144      1510, 1505, 1506, 1497, 1507,   86, 1498, 1512,   86,   86,
2145        86, 1508,   86,   86, 1501,   86, 3815,   86, 1509, 1503,
2146      1511, 1513, 1514, 1504, 1515, 1502, 1517,   86, 1505, 1506,
2147        86, 1507,   86,   86, 1516,   86, 1518,   86, 1508,   86,
2148 
2149      1519,   86, 1522,   86, 1525, 1509, 1523, 1511, 1513, 1514,
2150        86, 1515, 1520, 1517, 1524,   86, 1535, 1521,   86,   86,
2151      1533, 1516, 1540, 1518, 1534, 3815, 3815, 1519,   86, 1522,
2152        86, 1525, 1536, 1523,   86, 3815, 3815, 1539, 1537, 1538,
2153      3815, 1524,   86, 1543,   86, 1526, 1541, 1533,   86, 1527,
2154      1550, 1534, 1528, 1529,   86,   86, 1542, 1530,   86, 1536,
2155        86, 1545,   86, 1531, 1539, 1537, 1538, 1532,   86,   86,
2156      1543,   86, 1526, 1541, 1551, 1544, 1527, 1549,   86, 1528,
2157      1529,   86,   86, 1542, 1530, 1548,   86,   86, 1545, 1546,
2158      1531, 1547,   86, 1552, 1532, 1556, 1553, 1555, 1554, 1558,
2159 
2160      1557, 1560, 1544, 1562, 1549,   86,   86, 1559,   86,   86,
2161      1561, 3815, 1548,   86,   86, 1563, 1546,   86, 1547,   86,
2162      1552, 1591, 1556, 1553, 1555, 1554,   86, 1557,   86,   86,
2163      1562,   86,   86,   86, 1559, 1569, 1570, 1561, 1571, 1572,
2164      1573, 3815, 1563, 1564, 1574, 3815, 1575, 1576, 1565,   86,
2165      1566, 1577, 1567,   86, 1568, 3815, 3815,   86,   86,   86,
2166        86,   86, 1569, 1570,   86, 1571, 1579, 1578,   86,   86,
2167      1564, 1574, 1582, 1575, 1576, 1565,   86, 1566, 1577, 1567,
2168      1580, 1568, 1583, 1584,   86, 1581, 1585, 1587,   86, 1586,
2169        86, 1592, 1593, 1579, 1578, 1588, 1589, 3815, 1590, 1582,
2170 
2171        86, 1594,   86,   86,   86,   86, 1598,   86,   86, 1583,
2172      1584,   86,   86, 1585, 1587, 1596, 1586,   86, 1592, 1593,
2173        86, 1595, 1588, 1589,   86, 1590, 1597, 1599, 1594, 1600,
2174      1601, 3815,   86, 1598,   86, 1603, 1602,   86,   86,   86,
2175      1604, 1605, 1596, 1606, 1607, 3815, 3815,   86, 1595, 1608,
2176      1609, 1610,   86, 1597, 1599, 1612, 1600, 1601,   86,   86,
2177      1614, 1611,   86, 1602, 1615,   86, 1620, 1604,   86,   86,
2178      1606, 1607,   86,   86, 1613, 1616, 1608, 1609, 1610,   86,
2179      1617,   86,   86, 1618, 1622, 1623,   86,   86, 1611,   86,
2180        86, 1615, 1619,   86,   86, 1625, 1621,   86,   86, 1624,
2181 
2182      3815, 1613, 1616,   86, 1627, 1629,   86, 1617, 1626,   86,
2183      1618, 1622, 1623, 1628,   86, 1630, 1631, 3815, 1636, 1619,
2184      1632, 3815,   86, 1621, 1633, 3815, 1624,   86,   86, 1638,
2185        86, 1627, 1629, 1635,   86, 1626, 1634,   86,   86,   86,
2186      1628, 1640, 1630, 1631, 1637, 1636,   86, 1632, 1639,   86,
2187      1641, 1633, 1642,   86, 1644,   86, 1638, 1643, 1646, 1645,
2188      1635,   86, 1647, 1634, 3815, 1648,   86,   86, 1640, 1649,
2189        86, 1637,   86,   86,   86, 1639, 1650, 1641,   86, 1642,
2190      1651, 1644, 1654, 1653, 1643, 1652, 1645,   86, 1655, 1656,
2191        86,   86, 1648,   86,   86,   86, 1649, 1657,   86,   86,
2192 
2193      1658, 1659, 1662, 1663, 1664, 1666,   86, 1651,   86,   86,
2194      1653,   86, 1652,  171, 1660, 1655, 1656,   86, 1661, 1670,
2195      1665,   86,   86, 1669, 1657,   86, 1667, 1658, 1659, 1672,
2196        86, 1664, 1668, 1671,   86,   86,   86,   86, 1675,   86,
2197        86, 1660, 1673, 1674,   86, 1661, 1677, 1665,   86, 1678,
2198      1669,   86,   86, 1667, 1676,   86, 1672, 1679,   86, 1668,
2199      1671,   86, 1680, 1681,   86, 1675, 1683, 1684, 1682, 1673,
2200      1674,   86,   86, 1677, 1685,   86, 1678, 1686, 1689,   86,
2201      1690, 1676, 1687, 1688, 1679, 1691, 1697,   86,   86, 1680,
2202        86, 1692,   86, 1683, 1684, 1682,   86, 1695,   86,   86,
2203 
2204      1696, 1685, 1699,   86,   86, 1689, 1698, 1690, 1693,   86,
2205      1688, 1694, 1691, 1697, 1700,   86, 1701, 1703, 1692,   86,
2206        86, 1702, 1704, 1707, 1695, 1708, 1705, 1696, 1722, 1699,
2207      1742,   86,   86, 1698,   86, 1693, 1709,   86, 1694,   86,
2208      1706,   86, 1710, 1701, 1712, 1711,   86,   86, 1702,   86,
2209      1707,   86, 1708, 1705,   86, 1713, 1716, 1715,   86, 1714,
2210        86, 1718,   86, 1709,   86,   86,   86, 1706, 1719, 1710,
2211        86, 1712, 1711, 1721, 3815, 1723, 1717,   86, 3815, 1726,
2212      1720,   86, 1713, 1716, 1715,   86, 1714,   86, 1718,   86,
2213        86,   86,   86, 1724, 1730, 1719, 1727, 1725, 1728, 1731,
2214 
2215      1721, 1729, 1723, 1717,   86,   86, 1726, 1720,   86,   86,
2216        86, 1732, 1735, 1733, 1734, 1743,   86, 1736,   86,   86,
2217      1724, 1730,   86, 1727, 1725, 1728, 1731,   86, 1729, 1737,
2218      1738, 1739, 1744,   86, 1741,   86, 1740, 1746, 1732, 1735,
2219      1733, 1734,   86,   86, 1736,   86, 1745,   86, 1747,   86,
2220      1751, 1748, 1750, 1752, 1753,   86, 1737, 1738, 1739, 1744,
2221        86, 1741,   86, 1740,   86, 1749, 3815, 1754, 1758,   86,
2222      1755,   86,   86, 1745,   86, 1747, 1759, 3815, 1748, 1750,
2223      1760, 1761,   86, 1766, 1765,   86,   86, 1762, 1763, 1756,
2224        86, 1757, 1749,   86, 1754,   86,   86, 1755,   86,   86,
2225 
2226      1764,   86,   86, 1759,   86, 1768, 1767, 1760, 1761,   86,
2227      1766, 1765,   86,   86, 1762, 1763, 1756, 1769, 1757, 1776,
2228      1771, 1770, 1777, 1781,   86, 1772, 1774, 1764,   86,   86,
2229      1773, 1775, 1768, 1767,   86, 1778, 1786, 1779, 1782,   86,
2230      3815,   86,   86, 1780, 1769,   86, 1776, 1771, 1770, 1777,
2231      1781,   86, 1784, 1792, 1787, 1783, 3815,   86,   86,   86,
2232        86,   86, 1778,   86, 1779, 1782, 1785, 1789,   86, 1788,
2233      1780, 1790, 1791,   86,   86,   86,   86, 1795,   86, 1784,
2234      1793, 1787, 1783,   86, 1794,   86, 1797, 1796,   86, 1798,
2235      1802, 3815, 1799, 1785, 1789,   86, 1788,   86, 1790, 1791,
2236 
2237        86, 1805, 1800,   86,   86,   86, 1804, 1793, 1806,   86,
2238        86, 1794, 1801, 1797, 1796, 1803, 1798, 1802,   86, 1799,
2239        86,   86, 1807, 1808, 1810, 1809, 1811,   86, 1805, 1800,
2240        86,   86,   86, 1804, 1812, 1806, 1813, 3815, 3815, 1801,
2241        86, 1814, 1803, 3815, 1816, 1815, 1817, 1827, 1823, 1807,
2242      1808,   86, 1809,   86, 1822,   86,   86,   86, 1821,   86,
2243        86, 1812,   86, 1813, 1824, 1818, 1828,   86, 1814, 1819,
2244        86, 1816, 1815, 1817,   86, 1823,   86, 1825,   86, 1829,
2245      1832, 1822, 1820, 1826,   86, 1821, 1830, 1831,   86, 3815,
2246        86, 1824, 1818, 1828,   86, 1833, 1819, 1834,   86, 1836,
2247 
2248      1835,   86, 1841, 1838, 1825, 1840,   86, 1837, 1839, 1820,
2249      1826,   86,   86, 1830, 1831,   86,   86,   86, 1843, 1842,
2250        86,   86, 1833,   86, 1834, 1844, 1836, 1835,   86,   86,
2251      1838,   86, 1845, 1847, 1837, 1839, 1846,   86, 3815, 1849,
2252      1848, 3815, 1851, 3815, 1850, 1852, 1842,   86, 3815, 1853,
2253        86, 1855, 1844, 1854,   86, 1856,   86, 1860, 1866, 1845,
2254        86,   86,   86, 1846,   86,   86,   86, 1848,   86,   86,
2255      1857, 1850, 1852, 1858, 1859,   86, 1853,   86, 1855, 1862,
2256      1854,   86, 1856,   86, 1860,   86, 1861, 1863, 1864, 1865,
2257        86,   86, 1867, 1868, 1869,   86, 1870, 1857,   86, 1873,
2258 
2259      1858, 1859,   86,   86, 1878, 1871, 1862,   86,   86, 1874,
2260        86,   86, 1876, 1861, 1863, 1864, 1865, 1872,   86, 1867,
2261      1868, 1869,   86, 1870,   86,   86, 1873, 1879, 1875, 1877,
2262      1884,   86, 1871, 1880,   86, 1881, 1874,   86, 1882, 1876,
2263        86,   86, 1887,   86, 1872, 1883,   86, 1885, 1888, 1889,
2264        86, 1886, 1890,   86, 1879, 1875, 1877, 1884, 1891,   86,
2265      1880,   86, 1881, 3815,   86, 1882,   86, 3815, 1893, 1887,
2266        86, 1892, 1883,   86, 1885,   86, 1889,   86, 1886, 1890,
2267        86, 1894,  171, 1895, 1896, 1891, 1897, 1898, 1899,   86,
2268      1900,   86, 1905, 1902,   86, 1893, 1901, 1903, 1892,   86,
2269 
2270        86, 1904, 1911, 1906,   86, 1907,   86, 3815, 1894,   86,
2271      1895, 1896, 1909, 1897, 1898, 1899,   86, 1900,   86,   86,
2272      1902,   86, 1908, 1901, 1903, 1910, 1912,   86, 1904,   86,
2273      1906, 1913, 1907,   86,   86, 1914, 3815,   86, 1915, 1909,
2274      1916, 3815, 1917, 1919, 1920, 1921, 1918,   86,   86, 1908,
2275        86,   86, 1910, 1912,   86, 1922, 1927,   86, 1923, 1925,
2276      1935, 1924, 1914,   86,   86, 1915,   86,   86,   86, 1917,
2277      1919, 1920, 1921, 1918,   86, 1926, 3815, 1928, 1930, 3815,
2278        86,   86, 1922, 1927,   86, 1923, 1925,   86, 1924, 1929,
2279      1931, 1932,   86,   86, 1933, 3815, 1937,   86,   86, 1943,
2280 
2281      1936, 1939, 1926,   86, 1928, 1930, 1934, 1940, 1941, 1945,
2282        86, 1944, 1938, 1942,   86,   86, 1929, 1931, 1932,   86,
2283        86, 1933,   86, 1937, 1946, 1947,   86, 1936, 1939,   86,
2284      3815, 1948, 1950, 1934, 1940, 1941, 1949,   86, 1944, 1938,
2285      1942,   86, 1953, 1951, 1956, 1952, 1954,   86, 1955, 1957,
2286      1958,   86, 1947, 1959,   86,   86,   86,   86, 1948,   86,
2287      1961, 1960,   86, 1949,   86,   86, 1964, 1963,   86, 1953,
2288      1951, 1956, 1952, 1954, 1962, 1955, 1965, 1966,   86, 1968,
2289      1967,   86,   86,   86, 3815,   86,   86,   86, 1960,   86,
2290      3815,   86,   86,   86, 1963, 1970, 1971, 1969,   86, 1972,
2291 
2292      1973, 1962,   86, 1965, 1966,   86, 1968, 1967, 1974,   86,
2293      1976, 1977,   86,   86, 1975, 1980,   86,   86, 1982, 1979,
2294      1978, 1983, 1970, 1971, 1969, 1981, 1972, 1973,   86, 3815,
2295        86, 1990,   86,   86, 3815, 1974,   86, 1976, 1977,   86,
2296        86, 1975, 1980, 1984, 1985, 1982, 1979, 1978, 1987, 1986,
2297        86, 3815, 1981,   86, 1988,   86,   86,   86, 1990, 1991,
2298      1992,   86, 1993, 1994, 1995, 3815, 1996, 3815, 1997,   86,
2299      1984, 1985, 1989, 2000, 3815, 1987, 1986,   86,   86,   86,
2300        86, 1988,   86, 1998, 2001,   86, 1991,   86, 2003, 1993,
2301      1994, 1995,   86, 1996, 1999, 1997,   86,   86, 2006, 1989,
2302 
2303      2000, 2002,   86, 2011, 2004, 2009, 2012, 2005,   86,   86,
2304      1998, 2001, 2007,   86,   86, 2003, 2010, 2008,   86, 2013,
2305      2014, 1999,   86, 3815,   86, 2006, 2016,   86, 2002, 2015,
2306      2011, 2004, 2009,   86, 2005,   86, 2017, 2018,   86, 2007,
2307      2019, 2022, 3815, 2010, 2008, 2034,   86, 2014,   86, 2020,
2308        86,   86, 2021, 2016, 2023, 2024, 2015, 2027, 2025, 2026,
2309        86, 2028, 2033,   86, 2018,   86,   86, 2019, 2022,   86,
2310        86,   86,   86, 2032,   86,   86, 2020,   86, 3815, 2021,
2311      2029, 2023, 2024, 2030, 2027, 2025, 2026, 2031, 2028, 2035,
2312        86,   86, 2036, 2038,   86, 2039, 2046, 2037,   86,   86,
2313 
2314      2032, 2040,   86, 2043, 3815,   86, 2044, 2029,   86,   86,
2315      2030,   86,   86, 2041, 2031, 2045, 2035,   86, 2042, 2036,
2316      2038,   86, 2039, 2046, 2037,   86, 2047, 2048, 2040, 2049,
2317      2043, 2050, 3815, 2044, 2051, 3815, 2053, 2060, 2052, 2059,
2318        86, 2055, 2045,   86, 2056,   86, 2058, 2057,   86,   86,
2319      2054,   86,   86, 2047, 2048, 2069, 2049, 2072, 2050,   86,
2320        86, 2051,   86, 2053, 2060, 2052, 2059, 2061, 2055,   86,
2321      2062, 2056,   86, 2058, 2057, 2063,   86, 2054, 2064, 2066,
2322      2065, 2067, 2068, 2071,   86, 3815, 2074,   86, 2070,   86,
2323      2073,   86,   86, 2075, 2061,   86, 3815,   86, 2080,   86,
2324 
2325      2076, 2079,   86,   86, 2077, 2064, 2066, 2065, 2067, 2068,
2326        86,   86,   86, 2074,   86, 2070, 2078, 2073, 2081, 2084,
2327      2082,   86, 2085,   86, 3815,   86, 2083, 2076, 2079, 2086,
2328        86, 2077,   86, 2089, 2087, 2090, 2091,   86, 2088, 2099,
2329      2093,   86,   86, 2078,   86, 2081,   86, 2082, 2100, 2085,
2330      2092,   86,   86, 2083,   86, 2094, 2086,   86,   86, 2095,
2331      2089, 2087, 2090, 2091,   86, 2088, 2096, 2093, 2097,   86,
2332      2101,   86,   86, 2102, 2103, 2105, 2104, 2092, 2107,   86,
2333        86, 2109, 2094,   86,   86, 2108, 2095,   86, 2106, 2098,
2334      3815, 2113, 3815, 2096,   86,   86,   86, 2101, 2112,   86,
2335 
2336      2102,   86, 2105, 2104, 2110,   86, 2111,   86, 2116,   86,
2337      2118, 2115, 2108,   86, 2114, 2106, 2098,   86,   86, 2117,
2338      2119,   86, 2120, 2121, 2124, 2112,   86,   86, 2122, 2127,
2339        86, 2110,   86, 2111,   86, 2116, 2123, 2118, 2115, 2131,
2340        86, 2114,   86, 2125,   86, 2126, 2117, 2119,   86, 2120,
2341      2121, 2124, 2128, 2129,   86, 2122,   86,   86,  171, 2130,
2342        86, 2132, 2133, 2123, 2134, 2140,   86,   86,   86, 2137,
2343      2125, 2144, 2126, 2138, 3815,   86,   86, 2135, 2136, 2128,
2344      2129,   86, 2143,   86,   86, 2147, 2130, 2139, 2132, 2133,
2345      2142, 2134,   86,   86,   86, 2141, 2137,   86,   86,   86,
2346 
2347      2138, 2145, 2148,   86, 2135, 2136, 2146, 2149, 2150, 2143,
2348        86, 2151,   86,   86, 2139, 2152, 3815, 2142, 3815, 2153,
2349      2154, 2174, 2141, 2156,   86,   86,   86, 2155, 2145, 2148,
2350        86, 2157, 2158, 2146,   86, 2150,   86, 2162, 2160,   86,
2351      2159,   86,   86,   86, 2161,   86, 2153, 2154, 2163,   86,
2352      2156,   86, 2165,   86, 2155,   86, 2164, 3815, 2157, 2158,
2353        86, 3815, 2171,   86, 2162, 2160,   86, 2159,   86, 2166,
2354      2168, 2161, 2173, 2169,   86, 2163, 2172,   86, 2177, 2165,
2355      2170, 2176, 2167, 2164,   86, 2175,   86,   86,   86, 2171,
2356      2178,   86,   86, 2179, 2180,   86, 2166, 2168,   86,   86,
2357 
2358      2169,   86, 2181, 2172,   86, 2177, 2184, 2170, 2176, 2167,
2359      2185, 2182, 2175, 2183, 2186, 2187, 2188, 2178, 2189, 2190,
2360      2179, 2180,   86, 2193,   86,   86, 2194,   86, 2191, 2181,
2361      2192, 2195,   86, 2184,   86, 2196,   86,   86, 2182, 2197,
2362      2183,   86, 2187,   86,   86, 2189, 2190, 2198, 2199,   86,
2363        86, 2201, 2203, 2194, 2200, 2191,   86, 2192,   86,   86,
2364      2204, 2205, 2196,   86, 2202, 2207,   86, 2206,   86, 2209,
2365      2208,   86, 3815,   86, 2198,   86,   86, 2210, 2201, 2203,
2366        86, 2200,   86, 2211, 2214, 2212, 2213,   86, 2205,   86,
2367      2222, 2202,   86, 2227, 2206, 3815, 2209, 2208, 2228,   86,
2368 
2369      2215, 2216, 2217, 3815, 2210,   86, 2238, 2218,   86, 2220,
2370      2211,   86, 2212, 2213, 2219,   86,   86, 2221,   86, 2223,
2371      2225,   86,   86, 2224,   86,   86,   86, 2215, 2216, 2217,
2372        86, 2226, 2229,   86, 2218, 2231, 2220, 2230, 2232, 2233,
2373        86, 2219, 2234, 2235, 2221,   86, 2223, 2225, 2236,   86,
2374      2224,   86, 2240,   86,   86,   86, 2243, 2237, 2226, 2229,
2375        86,   86, 2231,   86, 2230, 2232, 2233, 2239,   86, 2241,
2376      2235, 2244, 2242, 2245,   86, 2236,   86,   86,   86, 2240,
2377      2246, 2247,   86, 2243, 2237, 2249, 2248,   86,   86, 2251,
2378      2252, 2250, 2255, 2253, 2239,   86, 2241, 2256,   86, 2242,
2379 
2380        86,   86, 2258,   86, 2254,   86, 2259, 2246,   86,   86,
2381      2260, 2257, 2249, 2248,   86,   86, 2251,   86, 2250, 2255,
2382      2253, 2262,   86, 2263,   86, 2265,   86, 2266,   86, 2258,
2383      2268, 2254, 3815, 2259, 2261,   86,   86, 2260, 2257, 2264,
2384        86, 2267, 2269, 2271, 2270, 2272, 2273,   86, 2262,   86,
2385        86, 2274, 2265, 2275,   86, 2276, 3815, 2280, 2277,   86,
2386      2287, 2261,   86,   86,   86,   86, 2264, 2278, 2267, 2269,
2387        86, 2270, 2272, 2273, 2279,   86,   86,   86, 2281,   86,
2388        86,   86, 2276,   86, 2280, 2277, 2283, 2284, 2282, 2285,
2389        86, 2286,   86, 2288, 2278, 2289,   86, 2290, 2297, 2291,
2390 
2391      3815, 2279,   86,   86,   86, 2281, 2292, 3815,   86, 2296,
2392        86,   86, 2294, 2283, 2284, 2282, 2285,   86, 2286,   86,
2393      2288, 2302, 2293, 2295, 2290,   86, 2291,   86,   86,   86,
2394      2299,   86, 2298, 2292, 2300,   86, 2296, 2301,   86, 2294,
2395      2303, 2304, 2305, 2306,   86,   86,   86, 2307, 2302, 2293,
2396      2295, 2311, 2308, 3815, 3815, 2314, 3815, 2299, 2319, 2298,
2397        86, 2300,   86,   86, 2301,   86,   86, 2303, 2304, 2305,
2398        86, 2309, 2313, 2315, 2307,   86, 2310, 2312,   86, 2308,
2399      2320, 2316, 2314,   86, 2317,   86, 2318,   86,   86,   86,
2400        86,   86, 2322,   86, 2321,   86, 2323, 2324, 2309, 2313,
2401 
2402      2315, 2325, 2326, 2310, 2312, 2332,   86, 2320, 2316, 2330,
2403        86, 2317, 2327, 2318,   86, 2328,   86, 2333, 2331, 2322,
2404      2329, 2321, 2336, 2323,   86,   86, 2337,   86, 2325, 2326,
2405        86,   86,   86, 2334, 2338,   86, 2330, 2339, 2335, 2327,
2406        86, 2340, 2328, 2341,   86, 2331, 2343, 2329, 3815, 2347,
2407      2345, 2342, 2344, 2346,   86,   86,   86, 2348,   86,   86,
2408      2349, 2338,   86, 2350, 2339,   86,   86,   86, 2340,   86,
2409      2354, 2365, 2353, 2343, 2351,   86,   86, 2345, 2342, 2344,
2410      2346,   86,   86, 2355, 2348,   86, 2352, 2356, 2358, 2357,
2411        86, 2360,   86,   86,  171,   86, 2359, 2354,   86, 2353,
2412 
2413      2361, 2351, 2362,   86, 2366, 2364, 2367, 2363, 2369, 2368,
2414      2355,   86,   86, 2352, 2356,   86, 2357,   86, 2360,   86,
2415        86, 2370, 2371, 2359, 2373,   86,   86,   86,   86,   86,
2416        86, 2366, 2364, 2367, 2363, 2369, 2368, 2372, 2374, 3815,
2417      2375, 2376, 2377,   86, 2379, 3815, 2384,   86, 2370,   86,
2418      2378, 2373, 2380,   86, 2381, 2385,   86,   86, 2382, 2383,
2419      2386,   86,   86, 2391, 2372, 2374,   86, 2375, 2376, 2377,
2420        86,   86,   86,   86, 2389, 2387,   86, 2378,   86, 2380,
2421        86, 2381, 2385,   86,   86, 2382, 2383, 2386, 2388, 2390,
2422      2392, 2393, 2395, 2401, 2394,   86,   86,   86, 2398,   86,
2423 
2424        86, 2389, 2387,   86, 2399,   86, 2400,   86, 2402,   86,
2425      2403,   86, 2396, 2408, 2404, 2388, 2390, 2392, 2393, 2395,
2426      2401, 2394,   86, 2397,   86, 2398, 2405, 2406,   86,   86,
2427      2407, 2399,   86, 2400,   86, 2402, 2409, 2403,   86, 2396,
2428        86, 2404, 2417, 2413,   86, 2410, 2421, 2411, 2412,   86,
2429      2397, 2414, 2415, 2405, 2406,   86,   86, 2407,   86,   86,
2430        86, 2416, 2418, 2409,   86, 2423, 2419, 2420,   86, 2417,
2431      2413,   86, 2410,   86, 2411, 2412,   86, 2422, 2414,   86,
2432      2424, 2425, 2426, 2427,   86,   86, 2428,   86, 2416, 2418,
2433      2429, 2431,   86, 2419, 2420, 2430,   86, 2432,   86,   86,
2434 
2435        86, 2436, 2471,   86, 2422, 3815,   86, 2424, 2425, 2426,
2436        86, 2433, 2437, 2428, 2435,   86,   86, 2429, 2431, 2434,
2437        86, 2438, 2430,   86, 2432, 2439, 2441,   86, 2436, 2440,
2438        86, 2442, 2445,   86,   86, 3815,   86,   86, 2433, 2437,
2439        86, 2435, 2443,   86,   86, 2451, 2434, 2444, 2438,   86,
2440      2446, 2447, 2439, 2441, 2448, 2450, 2440, 2453, 2442, 2445,
2441      2454, 2452,   86, 2455, 2457, 2456, 2458, 2449, 3815,   86,
2442        86, 2460, 2451,   86,   86,   86,   86, 2446, 2447, 2459,
2443      2462, 2448, 2450, 2463,   86, 3815,   86, 2454, 2452,   86,
2444      2455, 2457, 2456, 2458, 2449, 2461,   86, 2464, 2460, 2465,
2445 
2446      2466,   86,   86,   86,   86, 2467, 2459, 2462,   86, 2468,
2447      2463, 2469, 2473, 2475, 2470,   86, 2472, 2474,   86,   86,
2448        86,   86, 2461,   86, 2464, 2477, 2465, 2466, 2476,   86,
2449        86, 2478, 2467, 2484,   86, 2479, 2468,   86, 2469, 2473,
2450        86, 2470, 2480, 2472, 2474, 2481, 2483,   86, 2485, 2486,
2451      2482, 2487, 2477,   86,   86, 2476,   86,   86, 2478,   86,
2452      2491, 2490, 2479,   86,   86,   86,   86, 2493,   86, 2480,
2453        86, 2492, 2481, 2483, 2488, 2485, 2486, 2482, 2487, 2489,
2454        86, 2494,   86, 2495,   86, 2496, 2498, 2491, 2490, 2499,
2455      2497, 2501, 2500,   86, 2493, 2502, 2503, 2506, 2492, 2564,
2456 
2457      3815,   86,   86, 2508,   86, 2507,   86, 2504,   86,   86,
2458      2495, 2509, 2496, 2498,   86, 2505,   86, 2497, 2501, 2500,
2459        86,   86, 2502, 2510,   86, 2511,   86, 2512,   86,   86,
2460      2508,   86, 2507, 2513, 2504, 2521,   86,   86, 2509, 2516,
2461      2514,   86, 2505, 2515, 2518, 2517, 2520,   86, 2522, 2519,
2462      2510,   86, 2511,   86, 2512, 2523,   86, 2525,   86, 2524,
2463      2513,   86, 2521,   86,   86, 2526, 2516, 2514, 2531,   86,
2464      2515, 2527, 2517, 2520,   86, 2522,   86, 2528, 2536,   86,
2465        86, 2530, 2523, 2535, 2525,   86, 2524,   86, 2532, 2529,
2466      2537, 2533, 2526, 2534,   86,   86,   86,   86, 2527,   86,
2467 
2468        86, 2538,   86,   86, 2528, 2536, 2540, 2539, 2530, 2541,
2469      2535, 3815, 2542,   86, 2545, 2532, 2529, 2537, 2533,   86,
2470      2534,   86, 2543, 2544,   86, 2547, 2546, 2549, 2538,   86,
2471      2551, 2552,   86, 2540, 2539,   86, 2541, 2554, 2548, 2542,
2472        86, 2545,   86, 2550,   86,   86,   86,   86,   86, 2543,
2473      2544, 2555, 2547, 2546, 2549,   86, 2556, 2551, 2552, 2553,
2474      2557,   86, 2558, 2561, 2554, 2548, 2562, 2559, 2560, 2563,
2475      2550,   86, 2568, 2569,   86,   86, 2565,   86,   86, 2566,
2476        86,  171, 2570, 2556, 2567,   86, 2553,   86, 2571, 2558,
2477      2561,   86, 2572, 2562, 2559, 2560, 2563, 2574, 2583,   86,
2478 
2479      2575, 2573, 2578, 2565,   86,   86,   86,   86, 2579, 2570,
2480        86,   86, 2580, 2582, 2576, 2571, 2581, 2587, 3815, 2572,
2481        86, 2584,   86, 2585,   86, 2577,   86, 2575, 2573, 2578,
2482        86,   86, 2586,   86, 2588,   86, 2589, 2590,   86, 2580,
2483      2582, 2576, 2591, 2581,   86,   86, 2593, 2592, 2584,   86,
2484      2585, 2597, 2577,   86, 2595, 2594,   86,   86,   86, 2586,
2485        86, 2588, 2596,   86, 2590, 2598,   86, 2604,   86, 2591,
2486        86, 2599, 2600, 2593, 2592, 2602,   86, 2601, 2597, 2606,
2487        86, 2595, 2594,   86,   86, 2603, 2605,   86, 2607, 2596,
2488        86,   86, 2598, 2611,   86, 2612, 2608,   86, 2599, 2600,
2489 
2490      2609,   86, 2602,   86, 2601,   86, 2606, 2610,   86,   86,
2491        86, 2613, 2603, 2605, 2614, 2607,   86, 2615, 2616, 3815,
2492      2611, 2617, 2612, 2608, 2618, 3815,   86, 2609,   86, 2619,
2493      2624, 2620,   86,   86, 2610, 2623,   86,   86, 2613,   86,
2494        86, 2614, 2621,   86, 2615,   86,   86, 2622, 2617, 2625,
2495        86, 2618, 2627, 2626, 2628, 2629, 2619, 2624, 2620,   86,
2496      2631, 2630, 2623, 3815,   86, 2633, 2635,   86, 2632, 2621,
2497      2634, 2638, 2636,   86, 2622,   86, 2625,   86, 2637, 2643,
2498      2626, 2642, 2629, 2640,   86,   86,   86, 2631, 2630,   86,
2499        86, 2644, 2633,   86,   86, 2632,   86, 2634, 2638, 2636,
2500 
2501      2639, 2641,   86,   86, 2645, 2637,   86,   86, 2642, 2646,
2502      2640, 2647, 2648, 3815, 2649,   86,   86, 2650, 2644, 2651,
2503      2653,   86, 2652,   86, 2654, 3815,   86, 2639, 2641, 2657,
2504      2658,   86,   86, 2659, 2655, 2661, 2646, 2656, 2647, 2648,
2505        86, 2649,   86, 2660, 2650, 2664,   86, 2653,   86, 2652,
2506        86, 2654,   86, 2663, 2665,   86,   86,   86, 2667, 2662,
2507      2659, 2655, 2661, 2666, 2656,   86,   86, 2668,   86, 2669,
2508      2660,   86,   86, 2671, 2672, 2670,   86, 2673, 2674, 2675,
2509      2663,   86, 2676, 2677, 2678,   86, 2662,   86, 3815, 2682,
2510      2666,   86, 2681,   86, 2668,   86,   86,   86, 2684, 2679,
2511 
2512      2671,   86, 2670, 2687,   86, 2674, 2675, 2680,   86, 2676,
2513      2677,   86,   86, 2683,   86,   86,   86, 2686, 2685, 2681,
2514      2691,   86, 2688, 2692,   86,   86, 2679,   86, 2689, 2693,
2515      2687,   86, 2694, 2698, 2680, 2697, 2695, 3815, 3815,   86,
2516      2683,   86, 3815, 2690, 2686, 2685,   86,   86,   86, 2688,
2517      2692, 2699, 2696, 2703,   86, 2689, 2693,   86,   86, 2694,
2518        86, 2700,   86, 2695, 2701,   86, 2704, 2705,   86, 2702,
2519      2690, 2708, 3815,   86, 2707,   86,   86, 2706, 2699, 2696,
2520      2703,   86, 2711,   86, 2718,   86, 2709, 2713, 2700, 3815,
2521      2714, 2701, 2725,   86, 2705, 2712, 2702,   86, 2708,   86,
2522 
2523      2710, 2707,   86,   86, 2706, 2719, 2715,   86, 2717,   86,
2524      2716, 2718,   86, 2709, 2713,   86, 2720, 2714, 3815,   86,
2525        86, 2721, 2712, 2722,   86, 3815, 2726, 2710, 3815, 2727,
2526      2728,   86, 2719, 2715,   86, 2717, 2729, 2716, 2723, 2734,
2527      2724,   86, 2730, 2720,   86, 2731,   86,   86, 2721, 2732,
2528      2722,   86,   86, 2726, 3815,   86, 2727, 2728,   86,   86,
2529      2733,   86, 2736, 2729, 2737, 2723, 2734, 2724, 2738, 2730,
2530      2735,   86, 2731, 2739, 2740, 2741, 2732, 2742,   86, 2744,
2531      3815, 2743, 3815,   86,   86,   86,   86, 2733, 2745, 2736,
2532        86, 2737, 2746,   86, 2747, 2738,   86, 2735, 2748, 2749,
2533 
2534      2739, 2758, 2750, 3815, 2742, 2756,   86,   86, 2743,   86,
2535        86,   86,   86, 2751,   86, 2745, 2752, 2753, 2754, 2746,
2536      2755, 2747, 2757,   86,   86, 2748, 2749, 3815, 2758, 2750,
2537      2763,   86, 2759,   86,   86,   86,   86,   86, 2761,   86,
2538      2751, 2760, 2766, 2752, 2753, 2754, 2762, 2755,   86, 2764,
2539      3815, 2767, 2768, 2773,   86, 2774,   86, 2765, 3815, 2759,
2540        86, 3815,   86, 3815, 2769, 2761, 2770,   86, 2760, 2766,
2541      2771,   86,   86, 2762,  171,   86, 2764,   86, 2767, 2768,
2542        86,   86, 2774, 2772, 2765, 2775, 2776, 2777, 2778, 2779,
2543      2780, 2769, 3815, 2770,   86, 2781, 2782, 2771, 2785,   86,
2544 
2545      2783,   86,   86,   86, 2786,   86, 2784,   86,   86, 2787,
2546      2772, 2788, 2775, 2776, 2777, 2778, 2779, 2780,   86,   86,
2547      2789,   86, 2781, 2782, 2790,   86, 2791, 2783, 2792, 2794,
2548      2793,   86, 2795, 2784, 2797,   86, 2787, 2796,   86, 2798,
2549      2801, 2800, 2799, 2803,   86,   86,   86, 2789,   86,   86,
2550        86, 2790,   86, 2804, 2805, 2806,   86, 2793,   86, 2795,
2551        86, 2797, 2802,   86, 2796,   86, 2798,   86, 2800, 2799,
2552      2803, 2807,   86, 2808, 2809,   86,   86, 2811,   86, 2810,
2553      2804, 2805,   86, 2813,   86, 2812, 3815, 2815, 2814, 2802,
2554      3550, 3551,   86,   86, 2819,   86, 2816,   86, 2807, 2820,
2555 
2556      2808, 2809,   86,   86, 2811, 2822, 2810,   86,   86,   86,
2557        86, 2817, 2812, 2818, 2815, 2814, 2823, 2821,   86,   86,
2558        86, 2819,   86, 2816,   86, 2824, 2820,   86, 2825, 3815,
2559      2826, 2828, 2822, 2827, 2832, 2829, 2833, 2830, 2817,   86,
2560      2818, 2831,   86,   86, 2821, 2835,   86,   86,   86, 2836,
2561      2837,   86, 2824, 2839,   86, 2825,   86, 2826, 2828,   86,
2562      2827,   86, 2829, 2833, 2830, 2834, 2838,   86, 2831, 2840,
2563      2841, 2842, 2835, 2843, 3815, 2852,   86, 2844,   86, 2845,
2564      2839,   86,   86,   86,   86,   86, 2846,   86, 2848, 2854,
2565      2847, 2851, 2834, 2838, 2849,   86, 2840, 2841, 2842,   86,
2566 
2567      2843,   86,   86, 2850, 2844,   86, 2845,   86, 2853, 2855,
2568        86, 2856,   86, 2846,   86, 2848,   86, 2847, 2851, 2857,
2569      2858, 2849, 2860,   86, 2861,   86, 2859,   86,   86,   86,
2570      2850, 2862, 2864,   86, 2865, 2853, 2855,   86,   86, 2863,
2571        86, 2866, 2867, 2868,   86,   86, 2857, 2858, 3815, 2860,
2572      2869, 2861, 2870, 2859,   86, 2878,   86,   86, 2862, 2864,
2573      2871, 2865, 2872, 2873, 2874, 2876, 2863,   86,   86,   86,
2574      2875,   86,   86, 2877, 2882,   86, 2885, 2869,   86, 2870,
2575        86, 2880,   86, 2881, 2879,   86, 2884, 2871,   86, 2872,
2576      2873, 2874, 2876, 2883,   86,   86, 2887, 2875,   86,   86,
2577 
2578      2877, 2886,   86,   86,   86, 2891,   86, 2888, 2880, 2892,
2579      2881, 2879, 2893, 2884,   86,   86, 2889, 2890, 2894, 2896,
2580      2883,   86, 2895, 2887,   86,   86, 2898, 2897, 2886, 2900,
2581      2899,   86, 2891, 3815, 2888,   86, 2892,   86, 2901,   86,
2582        86,   86,   86, 2889, 2890, 2894, 2896, 2902,   86, 2895,
2583      2903,   86, 2904, 2898, 2897,   86, 2900, 2899, 2906,   86,
2584      2905, 2907,   86, 2908, 2909, 2901, 2910,   86, 2911, 2912,
2585      3815, 3815,   86, 2913, 2902,   86, 3815, 2903, 2916, 2904,
2586        86, 2915, 2919, 2914,   86, 2906, 2917, 2905,   86, 2918,
2587      2908,   86,   86,   86, 2920,   86, 2912,   86,   86, 2921,
2588 
2589      2913,   86, 2925,   86,   86, 2916, 2927, 2928, 2915, 2919,
2590      2914, 2922,   86, 2917,   86,   86, 2918, 2923,   86, 2924,
2591      2926, 2920, 2930,   86, 2929, 2932, 2921, 2931,   86,   86,
2592        86, 2935, 2934,   86,   86, 2933, 2936, 2938, 2922,   86,
2593        86, 2937,   86,   86, 2923,   86, 2924, 2926,   86,   86,
2594        86, 2929, 2932,   86, 2931, 2939, 2940, 2943, 2935, 2934,
2595      2941,   86, 2933, 2936,   86, 2942, 2944, 2945, 2937,   86,
2596      2946,   86,   86,   86, 2947,   86, 2948, 3815, 2949, 3815,
2597        86, 2955, 2939,   86, 2943, 3815, 2951, 2941, 2950, 2961,
2598      2952,  171, 2942, 2944, 2945, 2957, 2959, 2946,   86,   86,
2599 
2600      2953, 2947,   86, 2948,   86, 2949,   86, 2954,   86,   86,
2601      2956, 2958,   86, 2951,   86, 2950,   86, 2952,   86,   86,
2602      2960, 2962, 2957, 2959,   86, 2963, 2966, 2953, 2964, 3815,
2603      2965, 2968, 2969, 2967, 2954,   86, 2970, 2956, 2958,   86,
2604      2972, 2971,   86,   86,   86,   86, 2974, 2960,   86,   86,
2605        86,   86, 2963, 2966,   86, 2964,   86, 2965, 2968, 2969,
2606      2967, 2976, 2973, 2970,   86, 2975, 2978, 2972, 2971,   86,
2607      2977, 2979,   86, 2974, 2980,   86, 2981,   86, 2982, 2984,
2608        86, 2983, 3815, 2986,   86, 2988,   86, 2989, 2976, 2973,
2609      3815, 2985, 2975, 2978,   86, 2987,   86, 2977, 2979,   86,
2610 
2611        86, 2980, 2990, 2981, 2992,   86, 2984, 2991, 2983,   86,
2612        86,   86,   86,   86, 2989, 2993,   86, 2994, 2985, 2995,
2613      2998, 2996, 2987, 3007,   86, 2997,   86,   86,   86, 2990,
2614      2999, 2992,   86,   86, 2991, 3000, 3001, 3004, 3002, 3005,
2615      3003, 3006, 2993,   86, 2994,   86, 2995, 2998, 2996,   86,
2616        86, 3008, 2997, 3013, 3014,   86, 3815, 2999,   86, 3010,
2617        86, 3009,   86,   86, 3004, 3002,   86, 3003,   86, 3011,
2618        86,   86, 3012, 3022, 3018,   86, 3015,   86, 3008, 3019,
2619      3013,   86, 3016,   86, 3017,   86, 3010, 3020, 3009,   86,
2620        86,   86, 3023, 3021,   86,   86, 3011, 3024,   86, 3012,
2621 
2622      3022, 3018, 3025, 3015, 3026, 3027, 3019, 3815, 3028, 3016,
2623      3029, 3017,   86, 3815, 3020,   86,   86, 3031, 3033,   86,
2624      3021, 3030,   86,   86, 3024,   86, 3032, 3034,   86,   86,
2625      3035, 3026, 3027,   86,   86, 3028, 3036, 3029,   86,   86,
2626        86, 3037, 3038,   86, 3031, 3033, 3039, 3040, 3030, 3041,
2627        86, 3042, 3044, 3032, 3034, 3043, 3815, 3035,   86,   86,
2628      3045, 3815, 3049, 3036,   86, 3046,   86, 3048, 3037, 3038,
2629      3050,   86, 3047,   86, 3040, 3053, 3041,   86,   86, 3044,
2630      3058, 3051, 3043,   86,   86,   86, 3052, 3045,   86, 3049,
2631      3056, 3059, 3046, 3054, 3048,   86, 3055,   86,   86, 3047,
2632 
2633        86, 3060,   86, 3057,   86, 3062,   86,   86, 3051,   86,
2634        86, 3061, 3063, 3052, 3064, 3065, 3815, 3056, 3059,   86,
2635      3054, 3066,   86, 3055, 3068, 3069, 3067, 3071, 3060, 3070,
2636      3057,   86, 3062, 3073,   86,   86,   86, 3076, 3061,   86,
2637        86, 3064,   86,   86,   86, 3074, 3083, 3077, 3066, 3072,
2638      3080, 3068, 3069, 3067,   86,   86, 3070, 3075, 3108,   86,
2639      3073,   86,   86,   86,   86, 3078, 3079, 3081,   86, 3082,
2640      3085, 3084, 3074,   86, 3077, 3086, 3072, 3080,   86,   86,
2641        86, 3087,   86, 3088, 3075,   86, 3089,   86, 3091, 3090,
2642        86, 3815, 3078, 3079, 3081, 3094, 3082, 3085, 3084,   86,
2643 
2644      3093, 3092,   86,   86, 3096,   86, 3099,   86, 3087,   86,
2645      3088,   86, 3095, 3089,   86, 3091, 3090, 3098,   86, 3097,
2646      3100, 3101, 3094, 3103,   86, 3104,   86, 3093, 3092,   86,
2647      3102, 3096, 3105,   86, 3109, 3815, 3110, 3113,   86, 3095,
2648      3106,   86, 3107,   86, 3098,   86, 3097,   86, 3101,   86,
2649       171,   86, 3104, 3111,   86, 3112,   86, 3102, 3114, 3105,
2650      3115, 3109,   86, 3110,   86,   86, 3116, 3106, 3117, 3107,
2651      3118, 3815, 3120, 3122,   86, 3119, 3121,   86, 3123, 3125,
2652      3111, 3124, 3112, 3130, 3127,   86,   86, 3115, 3131, 3126,
2653      3128, 3129,   86,   86,   86, 3117,   86,   86,   86, 3120,
2654 
2655      3122,   86,   86, 3121,   86, 3132, 3125,   86, 3124,   86,
2656        86, 3127, 3134, 3133, 3135,   86, 3126, 3128, 3129, 3815,
2657        86, 3136, 3137, 3138, 3815, 3139, 3815,   86,   86, 3140,
2658      3143, 3141, 3132, 3142,   86, 3146, 3144, 3145,   86,   86,
2659      3133, 3135,   86,   86,   86, 3148,   86,   86, 3136, 3137,
2660      3138,   86, 3139,   86,   86,   86, 3140, 3143, 3141, 3147,
2661      3142,   86, 3146, 3144, 3145, 3149, 3150, 3151,   86, 3152,
2662      3153, 3156, 3148, 3154, 3155,   86, 3157,   86,   86,   86,
2663        86,   86, 3158, 3159, 3815, 3162, 3147,   86, 3160, 3161,
2664        86,   86, 3149, 3150, 3166, 3164, 3152, 3153, 3156,   86,
2665 
2666      3154, 3155,   86,   86, 3173, 3163,   86,   86, 3165, 3158,
2667      3159,   86, 3162,   86, 3170, 3160, 3161,   86, 3167, 3168,
2668        86,   86, 3164, 3169, 3171, 3172,   86,   86, 3174, 3176,
2669        86,   86, 3163, 3177, 3175, 3165,   86,   86,   86, 3178,
2670      3179, 3170,   86, 3815, 3182, 3167, 3168, 3180, 3181,   86,
2671      3169,   86, 3172, 3184, 3183, 3185, 3176, 3186, 3815,   86,
2672        86, 3175,   86, 3187, 3188,   86,   86, 3179,   86, 3189,
2673        86, 3182,   86, 3191, 3180, 3181, 3190,   86, 3192,   86,
2674        86, 3183, 3185, 3193, 3186,   86, 3195,   86,   86, 3194,
2675      3187, 3188, 3196,   86, 3197, 3198,   86, 3200, 3199,   86,
2676 
2677      3191, 3201, 3202, 3190, 3203, 3192, 3205, 3208, 3204,   86,
2678        86, 3206, 3207,   86,   86,   86, 3194, 3211,   86,   86,
2679        86,   86, 3198,   86, 3200, 3199,   86,   86,   86, 3202,
2680      3209, 3203, 3212, 3210, 3208, 3204, 3213,   86,   86, 3207,
2681        86, 3214, 3215,   86, 3211, 3218, 3219, 3216, 3217, 3220,
2682      3221, 3815, 3222, 3223, 3225,   86,   86, 3209, 3224,   86,
2683      3210,   86,   86,   86, 3230, 3229,   86, 3231,   86, 3215,
2684        86, 3228,   86, 3219, 3216, 3217, 3220,   86,   86, 3222,
2685        86,   86, 3226, 3227,   86, 3224, 3232, 3240, 3234, 3233,
2686        86,   86,   86, 3235, 3231, 3236,   86,   86, 3228,   86,
2687 
2688      3237, 3238, 3239, 3241, 3243,   86, 3245,   86,   86, 3226,
2689      3227,   86, 3242, 3246, 3244, 3247, 3233,   86,   86,   86,
2690        86, 3248, 3236,   86, 3249,   86, 3815, 3237, 3238, 3239,
2691      3241,   86, 3252, 3245, 3256,   86,   86,   86, 3253, 3242,
2692      3246, 3244, 3247, 3250, 3251,   86, 3330,   86, 3248, 3254,
2693        86, 3249, 3263,   86,   86, 3255,   86, 3264, 3261, 3252,
2694      3257,   86, 3260, 3815, 3258, 3253,   86, 3262,   86, 3265,
2695      3250, 3251, 3259,   86, 3266,   86, 3254, 3268,   86, 3269,
2696      3815, 3270, 3255, 3271,   86, 3261,   86, 3257,   86, 3260,
2697      3267, 3258, 3272, 3275, 3262, 3273, 3276, 3815,   86, 3259,
2698 
2699      3274,   86, 3815,   86,   86,   86, 3269,   86, 3270,   86,
2700      3271,   86, 3277,   86, 3278,   86, 3279, 3267,   86, 3272,
2701      3275,   86, 3273, 3276, 3280, 3281, 3282, 3274, 3284,   86,
2702      3285, 3283,   86,   86, 3287,   86, 3288,   86, 3286, 3277,
2703      3289, 3278, 3290, 3279, 3291,   86,   86, 3292,   86,   86,
2704      3293, 3280, 3281, 3282,   86, 3284, 3295, 3285, 3283, 3296,
2705      3297,   86, 3298,   86,   86, 3286, 3294, 3289,   86, 3290,
2706      3299,   86,   86, 3300, 3292,   86, 3301, 3293, 3302,   86,
2707      3303, 3304, 3306,   86,   86, 3307, 3296,   86, 3308, 3298,
2708      3311,   86, 3305, 3294,   86, 3309, 3310,   86,   86,   86,
2709 
2710      3300,   86, 3312, 3301,   86,   86,   86, 3303, 3304,   86,
2711      3316,   86,   86,   86,   86, 3308, 3314, 3311, 3313, 3305,
2712      3317, 3315, 3309, 3310,   86,   86, 3318, 3319, 3320, 3312,
2713      3321, 3322, 3323, 3324, 3325, 3327,   86, 3316,   86,   86,
2714      3328, 3331, 3326, 3336,   86, 3313,   86, 3317,   86,   86,
2715        86,   86, 3329, 3318, 3319, 3320,   86,   86, 3322,   86,
2716      3324, 3325,   86, 3332, 3333,   86, 3334,   86, 3331, 3326,
2717        86, 3335, 3337, 3339, 3338,   86, 3815, 3348,   86, 3329,
2718        86, 3340, 3815, 3341,   86, 3343,   86,   86, 3342, 3345,
2719      3332, 3333, 3349, 3334, 3350,   86, 3815, 3344, 3335, 3337,
2720 
2721      3339, 3338,   86,   86,   86, 3351,   86,   86, 3340,   86,
2722      3341,   86, 3343, 3815, 3346, 3342, 3345, 3347, 3352,   86,
2723      3353,   86, 3355,   86, 3344,   86, 3354, 3815,   86, 3356,
2724      3357, 3358, 3351, 3359, 3360, 3364, 3365, 3361,   86, 3366,
2725        86, 3346,   86,   86, 3347, 3352, 3362, 3353,   86,   86,
2726      3363,   86,   86, 3354,   86, 3367, 3356, 3357,   86,   86,
2727      3359, 3360, 3368, 3365, 3361, 3369,   86,   86,   86, 3370,
2728      3375, 3371, 3815, 3362, 3372, 3380, 3373, 3363,   86,   86,
2729      3376, 3379, 3367, 3374,   86, 3377,   86,   86,   86, 3368,
2730        86, 3378, 3369,   86,   86,   86, 3370,   86, 3371,   86,
2731 
2732      3381, 3372, 3380, 3373,   86,   86, 3382, 3376, 3379, 3383,
2733      3374,   86, 3377, 3384,   86, 3385, 3386, 3389, 3378, 3387,
2734      3388, 3391,   86,   86, 3390,   86,   86, 3381,   86, 3392,
2735      3398, 3393, 3394, 3382, 3397,   86, 3383, 3395,   86,   86,
2736      3384, 3396, 3385, 3386, 3389,   86, 3387, 3388,   86, 3399,
2737      3401, 3390, 3402, 3400,   86,   86,   86,   86, 3393,   86,
2738      3403, 3397, 3404,   86,   86, 3407, 3406, 3405, 3396, 3411,
2739      3410,   86, 3409,   86, 3408, 3815,   86,   86,   86, 3402,
2740      3400,   86, 3412, 3413,   86, 3414, 3418, 3403,   86, 3404,
2741        86,   86,   86, 3406, 3405, 3415, 3411, 3416, 3417, 3409,
2742 
2743      3419, 3408,   86, 3421, 3422,   86, 3425,   86,   86,   86,
2744      3413,   86, 3414,   86, 3420, 3423, 3424,   86, 3426, 3429,
2745        86,   86, 3415, 3428, 3416, 3417,   86, 3427, 3431, 3432,
2746        86, 3422,   86,   86, 3434,   86, 3438, 3436, 3430,   86,
2747      3435, 3420, 3423, 3424,   86,   86,   86,   86,   86, 3439,
2748      3428, 3433,   86, 3437, 3427, 3431, 3432, 3440,   86, 3441,
2749        86,   86, 3442,   86, 3436, 3430,   86, 3435, 3444, 3445,
2750      3443, 3446, 3447, 3448, 3815,   86, 3439, 3451, 3433, 3453,
2751      3437,   86, 3449,   86, 3440,   86, 3441,   86,   86, 3442,
2752      3450,   86, 3452, 3454, 3457, 3444,   86, 3443,   86, 3447,
2753 
2754      3458,   86, 3462, 3466,   86,   86, 3453, 3459, 3465, 3449,
2755      3455, 3456,   86, 3467,   86,   86,   86, 3450, 3461, 3452,
2756        86,   86, 3460, 3463,   86,   86,   86, 3458, 3464,   86,
2757        86,   86,   86, 3468, 3459, 3465, 3469, 3455, 3456,   86,
2758        86, 3470, 3471, 3472, 3473, 3461, 3474, 3475, 3476, 3460,
2759      3463, 3481, 3477, 3479,   86, 3464, 3478,   86,   86, 3480,
2760        86, 3482, 3483, 3469,   86,   86,   86, 3484, 3470, 3471,
2761        86,   86,   86,   86, 3475,   86, 3485, 3486,   86, 3477,
2762      3490,   86,   86, 3478,   86,   86, 3480, 3487, 3482,   86,
2763      3488, 3489,   86, 3491,   86, 3494,   86, 3493,   86, 3492,
2764 
2765        86, 3496, 3495, 3485, 3486,   86,   86, 3490,   86,   86,
2766      3497, 3498, 3499, 3501, 3487, 3506, 3500, 3488, 3489,   86,
2767        86,   86, 3494, 3502, 3493,   86, 3492, 3504, 3496, 3495,
2768        86, 3505, 3503, 3507, 3508,   86, 3815,   86,   86, 3499,
2769        86, 3509, 3506, 3500, 3510,   86, 3511, 3512, 3513,   86,
2770      3502, 3815, 3514,   86, 3504, 3515, 3815,   86, 3505, 3503,
2771        86,   86,   86,   86, 3516, 3518, 3517,   86, 3509, 3519,
2772      3521, 3510,   86, 3520, 3512, 3513,   86,   86,   86,   86,
2773      3522, 3524, 3515, 3523, 3531,   86, 3535,   86,   86,   86,
2774        86, 3516, 3518, 3517, 3527,   86, 3519, 3521, 3525, 3526,
2775 
2776      3520,   86,   86,   86, 3528,   86,   86, 3522, 3524, 3815,
2777      3523, 3531, 3529, 3530, 3532,   86, 3533, 3534,   86, 3539,
2778      3536, 3527,   86, 3537,   86, 3525, 3526, 3538, 3540, 3541,
2779        86, 3528, 3544,   86, 3542, 3547,   86, 3543,   86, 3529,
2780      3530, 3532,   86, 3533, 3534, 3545, 3539, 3536, 3549,   86,
2781      3537,   86, 3546, 3548, 3538,   86,   86,   86, 3554,   86,
2782        86, 3542,   86, 3557, 3543,   86, 3558,   86, 3552, 3553,
2783      3555, 3556, 3545, 3559, 3560,   86, 3562, 3563, 3561, 3546,
2784      3548, 3564, 3568, 3815, 3815,   86,   86,   86,   86,   86,
2785      3557,   86, 3567, 3558, 3571, 3565,   86,   86, 3572,   86,
2786 
2787      3559,   86,   86, 3562,   86, 3561, 3566,   86, 3564,   86,
2788      3570, 3569, 3573,   86,   86, 3575, 3574,   86,   86, 3567,
2789        86, 3571, 3565, 3576, 3577, 3572, 3578,   86, 3580, 3579,
2790      3581, 3582,   86, 3566,   86,   86, 3583, 3570, 3569, 3573,
2791      3584, 3585, 3575, 3574, 3586, 3589,   86,   86,   86, 3591,
2792      3576, 3577, 3593,   86,   86, 3580, 3579,   86,   86,   86,
2793      3587,   86,   86, 3583, 3590, 3588,   86, 3584, 3585, 3592,
2794      3595, 3586, 3594, 3596,   86,   86, 3591,   86,   86, 3593,
2795      3597, 3598, 3599, 3600, 3602, 3815, 3601, 3603, 3604, 3605,
2796      3608, 3590,   86, 3609,   86, 3607, 3592, 3595,   86, 3594,
2797 
2798        86,   86,   86, 3606,   86, 3610,   86, 3611, 3598,   86,
2799        86, 3602,   86, 3601,   86, 3604,   86,   86, 3612, 3613,
2800        86,   86, 3607, 3614, 3615, 3616,   86, 3618, 3619, 3617,
2801      3606, 3620,   86, 3621,   86, 3622, 3624, 3626, 3815, 3815,
2802      3631, 3623,   86, 3630, 3815,   86,   86,   86,   86,   86,
2803        86,   86, 3616,   86,   86,   86, 3617, 3625, 3620, 3627,
2804      3621, 3628, 3622,   86,   86,   86, 3629,   86, 3623,   86,
2805      3630,   86, 3633, 3632, 3634,   86, 3636,   86, 3635, 3815,
2806      3637,   86, 3638,   86, 3625,   86, 3627, 3639, 3628, 3640,
2807      3642,   86, 3815, 3629, 3815, 3641, 3643, 3815, 3647,   86,
2808 
2809      3632, 3634,   86, 3636,   86, 3635,   86, 3637,   86, 3638,
2810      3644,   86,   86, 3645, 3639, 3646,   86, 3642, 3648,   86,
2811      3649,   86, 3641, 3643,   86, 3647, 3650, 3651,   86, 3653,
2812      3815, 3652,   86, 3654, 3655, 3656,   86, 3644,   86, 3657,
2813      3645,   86, 3646, 3658, 3659, 3648, 3660, 3649,   86, 3661,
2814        86,   86,   86, 3650, 3651, 3662, 3653,   86, 3652, 3665,
2815      3654, 3655,   86,   86, 3664, 3663,   86,   86, 3666, 3815,
2816        86,   86,   86, 3660, 3667, 3668, 3661,   86,   86, 3670,
2817      3671, 3669, 3662, 3675,   86,   86, 3665, 3674, 3815, 3672,
2818      3673, 3664, 3663,   86,   86, 3666,   86,   86,   86,   86,
2819 
2820        86, 3667, 3668, 3676, 3677,   86, 3670, 3671, 3669, 3678,
2821      3675, 3679, 3680, 3681, 3674,   86, 3672, 3673,   86, 3682,
2822      3684, 3683,   86, 3686,   86, 3685, 3689, 3688,   86,   86,
2823      3676, 3677,   86,   86,   86, 3691, 3678, 3692, 3679, 3680,
2824      3681,   86, 3687, 3690, 3693,   86, 3682,   86, 3683, 3694,
2825      3686, 3695, 3685,   86, 3688,   86, 3697, 3698, 3696,   86,
2826      3699,   86,   86,   86, 3692,   86, 3700, 3702,   86, 3687,
2827      3690,   86, 3815, 3705, 3701, 3703,   86, 3704, 3695,   86,
2828        86, 3706,   86, 3697, 3698, 3696,   86, 3699,   86, 3707,
2829      3708, 3709,   86, 3700, 3710,   86,   86, 3711, 3712,   86,
2830 
2831      3705, 3701, 3703, 3713, 3704, 3714, 3716, 3715,   86, 3717,
2832        86,   86, 3718, 3721, 3722,   86, 3707,   86,   86,   86,
2833      3720,   86, 3719, 3724,   86, 3712, 3726, 3723,   86, 3727,
2834      3713, 3728,   86, 3716, 3715, 3725,   86,   86,   86, 3718,
2835        86,   86, 3731,   86, 3732,   86,   86, 3720,   86, 3719,
2836      3724, 3729, 3730, 3726, 3723,   86,   86,   86,   86,   86,
2837      3734, 3733, 3725, 3736, 3735, 3738, 3737,   86,   86, 3731,
2838      3815, 3732,   86,   86, 3739, 3740, 3741,   86, 3729, 3730,
2839        86, 3744,   86, 3745, 3746, 3743, 3747, 3734, 3733,   86,
2840      3736, 3735, 3738, 3737,   86, 3748,   86,   86, 3742, 3815,
2841 
2842      3753, 3739, 3740,   86, 3749,   86,   86, 3750, 3744, 3752,
2843        86, 3746, 3743, 3751, 3754, 3755, 3756,   86,   86, 3815,
2844      3758,   86, 3748, 3757, 3759, 3742,   86, 3762,   86,   86,
2845      3760, 3749,   86, 3766, 3750,   86, 3752,   86,   86, 3765,
2846      3751,   86, 3755,   86,   86, 3761,   86, 3758, 3763, 3764,
2847      3757, 3759, 3767,   86, 3770, 3768,   86, 3760, 3769,   86,
2848        86, 3771,   86,   86, 3772,   86, 3765, 3773, 3774,   86,
2849        86, 3777, 3761, 3775, 3815, 3763, 3764, 3815,   86, 3767,
2850        86, 3770, 3768, 3776,   86, 3769, 3779,   86, 3771, 3780,
2851        86, 3772, 3781,   86, 3773, 3774, 3778,   86, 3777, 3783,
2852 
2853      3775, 3782, 3784, 3785,   86, 3787, 3786,   86, 3815, 3793,
2854      3776, 3815,   86, 3779,   86,   86, 3780, 3788, 3789, 3781,
2855      3791,   86, 3815, 3778, 3795,   86, 3783, 3790, 3782,   86,
2856      3785,   86,   86, 3786, 3796,   86,   86,   86,   86, 3799,
2857      3792, 3794,   86, 3800, 3788, 3789,   86, 3791,   86,   86,
2858      3797, 3795, 3798, 3804, 3790, 3801,   86, 3803,   86, 3806,
2859        86, 3796, 3815,   86, 3802,   86, 3799, 3792, 3794, 3805,
2860        86, 3807,   86, 3808, 3813, 3809, 3815, 3797, 3814, 3798,
2861        86, 3810, 3801,   86, 3803, 3815,   86, 3811, 3815,   86,
2862      3815, 3802, 3815,   86, 3815,   86, 3805,   86,   86, 3812,
2863 
2864      3808,   86, 3809,   86, 3815,   86, 3815,   86, 3810, 3815,
2865      3815, 3815, 3815, 3815, 3811, 3815, 3815, 3815, 3815, 3815,
2866      3815, 3815, 3815, 3815, 3815, 3815, 3812,   47,   47,   47,
2867        47,   47,   47,   47,   52,   52,   52,   52,   52,   52,
2868        52,   57,   57,   57,   57,   57,   57,   57,   63,   63,
2869        63,   63,   63,   63,   63,   68,   68,   68,   68,   68,
2870        68,   68,   74,   74,   74,   74,   74,   74,   74,   80,
2871        80,   80,   80,   80,   80,   80,   89,   89, 3815,   89,
2872        89,   89,   89,  161,  161, 3815, 3815, 3815,  161,  161,
2873       163,  163, 3815, 3815,  163, 3815,  163,  165, 3815, 3815,
2874 
2875      3815, 3815, 3815,  165,  168,  168, 3815, 3815, 3815,  168,
2876       168,  170, 3815, 3815, 3815, 3815, 3815,  170,  172,  172,
2877      3815,  172,  172,  172,  172,  175, 3815, 3815, 3815, 3815,
2878      3815,  175,  178,  178, 3815, 3815, 3815,  178,  178,   90,
2879        90, 3815,   90,   90,   90,   90,   17, 3815, 3815, 3815,
2880      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
2881      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
2882      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
2883      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
2884      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
2885 
2886      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
2887      3815, 3815, 3815
2888     } ;
2889 
2890 static const flex_int16_t yy_chk[10914] =
2891     {   0,
2892         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2893         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2894         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2895         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2896         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2897         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2898         1,    1,    1,    1,    1,    1,    3,    3,    3,    4,
2899         4,    4,    5,    5,    6,    6,    5,   32,    6,    7,
2900         7,    7,    7,   33,    7,    8,    8,    8,    8,   32,
2901         8,    9,    9,    9,   10,   10,   10,   19,   51,   51,
2902 
2903      3823,   19,  233,    3,   32,   33,    4,   67,   67,    5,
2904        33,    6, 3103,   13,   13,   13,   13,    7,   13,   14,
2905        14,   14,   14,    8,   14,   15,   15,   15,    9,   25,
2906       233,   10,   11,   11,   11,   11,   11,   11,   12,   12,
2907        12,   12,   12,   12,   16,   16,   16,   34,   28,   84,
2908        84,   13,   11,   45, 1199,   25,   25,   14,   12,   34,
2909        39,   23,   15,   23,   23,   45,   23,  178,   28,  603,
2910        11,   28,   23,   39,   34,   28,   12,  302,   87,   11,
2911        45,   16,   87,  162,  162,   12,   30,   39,   29,  177,
2912        56,  175,   37,   56,   30,   28,   26,  603,   37,   23,
2913 
2914        24,   24,   29,   26,   24,   30,  302,   26,  100,   24,
2915        26,   24,   30,   30,   29,   29,   92,  100,   24,   37,
2916        72,   30,   26,   26,   24,  169,  169,   24,   24,   29,
2917        26,   24,   30,   72,   26,  100,   24,   26,   24,   62,
2918        92,   62,   62,   92,   62,   24,   27,   72,   31,  170,
2919        27,   31,   94,   27,   95,   27,   27,  198,   31,   46,
2920        31,   46,   46,  223,   46,  226,   27,  168,   27,   95,
2921        46,   31,   94,   27,  167,   31,   35,   27,   31,   94,
2922        27,   95,   27,   27,   35,   31,   93,   31,   36,  198,
2923        35,   97,   36,   27,   35,  223,   44,  226,   97,   42,
2924 
2925        44,   42,   35,   35,   44,   98,   36,  165,   36,   93,
2926        42,   35,  163,   93,   36,   36,   42,   35,   97,   36,
2927       161,   35,   44,   44,   43,   42,   42,   44,   42,   98,
2928       351,   44,   98,   36,   43,   36,   38,   42,   43,   43,
2929        38,   96,  164,   42,   38,  164,   85,   43,   80,   96,
2930        38,   43,   70,   38,   70,   70,  101,   70,  138,  351,
2931        38,   43,   38,   38,  105,   43,   43,   38,   96,  105,
2932        73,   38,   73,   73,  101,   73,   79,   38,   79,   79,
2933        38,   79,   75,  101,  138,  138,   99,   38,   40,  106,
2934        70,  105,   40,   86,  108,   86,   86,  106,   86,   99,
2935 
2936       126,  150,   40,   40,   86,   40,   89,  108,   89,   89,
2937        99,   89,  150,   99,   40,   40,  106,   89,   74,   40,
2938       126,  108,  102,  102,  107,  228,   99,  126,  150,   40,
2939        40,  103,   40,   41,  110,  102,   41,  103,  117,  103,
2940        68,  110,  107,   41,   89,  104,  104,   41,   41,  102,
2941       102,  117,  103,  112,  104,   41,  107,  228,  103,  109,
2942        41,  110,  112,   41,  103,  117,  103,  114,  109,  107,
2943        41,  116,  104,  104,   41,   41,  111,  111,  113,  125,
2944       112,  109,  115,  119,  111, 1023,  109,  113,   63,  115,
2945       114,   58,  111,  116,  114,  109,  118,  121,  116,  118,
2946 
2947       120,  124,  125,  111,  111,  113,  125,  119,  120,  115,
2948        57,  111,  118,  118,  124,  119, 1023,  121,  122,  121,
2949       118,  128,  122,  118,  121,  123,  118,  120,  124,  127,
2950       123,  132,  129,  123,  119,   52,  127,  130,  122,  118,
2951       118,  128,  122,  127,  121,  122,  131,  134,  128,  122,
2952       129,  130,  123,  131,  132,   47,  127,  123,  132,  129,
2953       133, 1187,  135,  127,  130,  122,   18,  141,  136,  133,
2954       134,  135,  136,  131,  134,  137,  139,  140,  136,  141,
2955       142,  142,  137,  139,  145,  143,  140,  133,  146,  135,
2956       136, 1187,  140,  143,  141,  136,  146,  153,  145,  136,
2957 
2958       140,  147,  137,  139,  140,  136,  144,  142,  153,  148,
2959       151,  145,  143,  140,  149,   17,  147,  144,  151,  140,
2960       146,  144,  154,  146,  153,  149,  148,  155,  147,  148,
2961       144,  154,  152,  144,  149,  148,  148,  151,  152,  156,
2962       157,  149,  155,  154,  144,    0,  159,  154,  144,  154,
2963       160,  158,  149,  148,  155,  157,  148,    0,  154,  152,
2964       158,  156,    0,  160,    0,  174,  156,  157,  159,  166,
2965       154,  166,  166,  159,  166,  179,  179,  160,  158,  171,
2966       180,  171,  171,  172,  171,  172,  172,  181,  172,  174,
2967       182,  176,  174,  176,  176,    0,  176,  183,  186,  182,
2968 
2969       184,  181,  180,  185,  184,  188,  189,  180,  191,  183,
2970       185,    0,  187,  188,  186,  191,  190,  182,  189,  181,
2971       192,  172,  185,  193,  183,  186,  196,  184,  181,  197,
2972       185,  187,  188,  189,  194,  191,  192,  185,  190,  187,
2973       194,  193,  195,  190,  195,  201,  202,  192,  196,  212,
2974       193,  204,  203,  196,  199,  197,  197,  203,  199,  204,
2975       212,  202,  207,  208,  205,  206,  194,  194,  209,  195,
2976       208,  201,  201,  202,  210,  199,  212,  207,  204,    0,
2977       213,    0,  199,  211,  203,  199,  205,  206,    0,  207,
2978       208,  205,  206,  213,  214,  216,  209,  210,    0,  231,
2979 
2980       209,  210,  199,  200,  216,  211,  214,  213,  200,  215,
2981       211,  217,  215,  200,    0,  218,    0,  222,  221,  200,
2982       200,  214,  216,  209,  215,  221,  200,  220,  222,  224,
2983       200,  231,  225,  217,  227,  200,  215,  218,  217,  215,
2984       200,  227,  218,  225,  222,  221,  200,  200,  219,  220,
2985       232,  219,  229,  219,  220,  224,  224,    0,  234,  235,
2986         0,  227,  230,  236,  225,  219,  229,  219,  230,  238,
2987       225,  237,  232,  239,  219,  219,  237,  232,  219,    0,
2988       219,  240,  235,    0,  229,  242,  235,  239,  244,  230,
2989       234,  244,  219,  229,  219,  236,  237,  241,  237,  245,
2990 
2991       239,  238,  240,  237,  241,  243,  242,  246,  240,  247,
2992       248,  249,  242,  251,  243,  244,  250,  252,  245,  243,
2993       251,  246,  252,  249,  241,  253,  245,  250,  248,  257,
2994       254,  247,  243,  255,  246,  260,  247,  248,  249,  254,
2995       251,  243,  259,  250,  261,  256,  262,  253,    0,  252,
2996       256,  261,  253,  258,  258,  264,  255,  254,  259,  263,
2997       255,  257,  258,  264,  266,  265,  267,  260,  262,  259,
2998       268,  261,  256,  262,  269,  270,  271,  273,  268,    0,
2999       258,  258,  264,  272,  263,  265,  263,  275,  274,  271,
3000       270,  276,  265,    0,    0,  277,  266,  268,  267,  277,
3001 
3002       279,  278,  270,  271,  273,  280,  269,  281,  276,  272,
3003       272,  274,    0,  280,  282,  279,  276,  283,  276,  275,
3004       274,  282,  277,  278,  285,  284,  281,  279,  278,  284,
3005       286,  287,  280,  288,  281,  276,  290,  289,  274,  283,
3006       292,  282,  291,  294,  283,  295,  285,  293,  297,  298,
3007       297,  285,  284,  292,  291,  288,  293,  296,  295,  289,
3008       288,  294,  286,  287,  289,  299,  300,  292,  290,  291,
3009       294,  301,  295,  303,  293,  297,  296,  304,    0,  305,
3010       312,  298,  303,  306,  296,  307,  309,    0,  312,  299,
3011       308,  300,  299,  300,  306,  314,    0,  301,  301,  307,
3012 
3013       303,  310,  311,  304,  304,  305,  305,  312,  315,  309,
3014       306,  307,  307,  309,  308,  316,  317,  308,  318,  310,
3015       311,  315,  319,  322,  323,  320,  307,  314,  310,  311,
3016       324,  321,  326,  325,    0,  315,  328,  324,  326,  319,
3017       327,  317,  325,  317,  329,  319,  331,  316,  323,  319,
3018       318,  320,  320,  321,  327,  322,  323,  324,  321,  326,
3019       325,  330,  328,  328,  332,  333,  319,  327,  329,  331,
3020       330,  329,  332,  331,  333,  323,  334,  335,  338,  337,
3021       340,  336,    0,    0,    0,  339,  335,  343,  330,  346,
3022       371,  332,  333,  342,  337,  340,  343,  344,  336,    0,
3023 
3024       353,  347,  334,  334,  335,  336,  337,  340,  336,  339,
3025       338,  342,  339,  346,  343,  347,  346,  348,  350,  344,
3026       342,  352,  371,  350,  344,  336,  341,  353,  347,  349,
3027       349,  341,  348,  354,  341,  355,  354,    0,  360,  341,
3028       341,  341,  341,  354,  348,  352,    0,  355,  352,  341,
3029       350,    0,  356,  341,  349,  361,  349,  349,  341,    0,
3030       354,  341,  355,  354,  356,  360,  341,  341,  341,  341,
3031       345,  358,  345,  357,  357,  359,    0,  361,  362,  356,
3032       363,  367,  361,  357,  345,  345,  345,  366,  345,  358,
3033       364,  365,  364,  359,  345,    0,  367,  345,  358,  345,
3034 
3035       357,  357,  359,  365,  362,  362,  363,  363,  367,  366,
3036       370,  345,  345,  345,  366,  345,  368,  364,  365,  369,
3037       376,  372,  370,  372,  368,    0,  369,  374,    0,  375,
3038         0,  377,  372,    0,  374,  378,  379,  370,  379,  372,
3039       381,  378,  380,  368,  384,    0,  369,  372,  372,  383,
3040       372,  375,  376,  377,  374,  380,  375,  378,  377,  372,
3041       379,  382,  378,  379,  385,  379,  372,  383,  378,  380,
3042       384,  384,  381,  386,  382,  387,  383,  382,    0,  382,
3043         0,  391,  401,  390,    0,  382,  392,  401,  382,  408,
3044       390,  393,    0,  410,  410,    0,  385,  387,  392,  391,
3045 
3046       386,  382,  387,  393,  382,  391,  382,  388,  391,  388,
3047       390,  399,  394,  392,  401,  388,  396,  397,  393,  388,
3048       410,  408,  403,  399,  388,  394,  391,  388,  403,  400,
3049       397,  421,  396,  388,  388,    0,  388,    0,  399,  394,
3050       396,    0,  388,  396,  397,  402,  388,  400,    0,  403,
3051         0,  388,  402,  404,  388,  389,  400,  389,  406,  396,
3052       407,  404,  405,  421,  411,    0,  402,  422,  407,  409,
3053       389,  411,  402,  389,  405,  389,  406,  389,  409,  402,
3054       404,  389,  389,  415,  389,  406,  412,  407,    0,  405,
3055       415,  411,  413,  422,  422,    0,  409,  389,    0,  412,
3056 
3057       389,  413,  389,    0,  389,  398,  398,  414,  417,  418,
3058       415,  420,  424,  412,  416,  398,  398,  398,  398,  398,
3059       417,  416,  398,  420,  413,  414,  419,  424,  413,  414,
3060       398,  418,  398,  398,  414,  417,  418,  425,  420,  424,
3061       423,  416,  398,  398,  398,  398,  398,  423,  419,  398,
3062       425,  426,  414,  419,  427,  428,  427,  429,  430,  430,
3063         0,  431,  432,  433,  425,  434,  428,  423,  431,  432,
3064       436,  437,  435,    0,  433,    0,  434,    0,  441,  429,
3065       439,  427,  428,  426,  429,  435,    0,  430,  431,  432,
3066       433,  799,  434,  437,  440,  436,  443,  436,  437,  435,
3067 
3068       438,  438,  442,  439,  441,  441,  445,  439,  443,  440,
3069       442,  444,  452,  446,  449,  445,  450,  440,  438,  454,
3070       799,  440,  444,  443,  467,  438,  446,  438,  438,  442,
3071       447,  447,  451,  445,  450,  452,  440,  453,  444,  452,
3072       446,  455,  447,  450,  447,  438,  449,  455,  459,  447,
3073       458,  454,  456,    0,  451,  453,  467,  447,  447,  451,
3074       457,    0,    0,    0,  453,  461,  463,    0,  455,  447,
3075       459,  447,  448,  456,  458,  459,  462,  458,  464,  456,
3076       448,  448,  460,  457,  448,  448,  470,  457,  448,  460,
3077       462,  461,  461,  463,  448,  466,  465,  468,  470,  448,
3078 
3079       464,    0,  469,  462,  472,  464,  473,  448,  448,  460,
3080       465,  448,  448,  470,  471,  448,    0,  475,  479,  468,
3081       471,  466,  466,  465,  468,  469,  472,  474,  473,  469,
3082       476,  472,  475,  473,  477,  474,  478,  476,  481,  586,
3083       480,  471,  479,  477,  475,  479,  480,  482,  483,  484,
3084       486,  478,  485,  474,  474,  488,  491,  476,  492,    0,
3085       481,  477,  474,  478,  484,  481,  586,  480,  489,  482,
3086         0,  483,  486,  489,  482,  483,  484,  486,  485,  485,
3087       487,  488,  488,  494,  492,  492,  487,  495,  491,  494,
3088       496,  497,  498,  499,  500,  489,  496,  501,  498,  504,
3089 
3090       506,  500,  503,  527,  503,  508,  495,  487,  504,  497,
3091       494,  503,  501,  527,  495,  499,  505,  496,  497,  498,
3092       499,  500,  507,  505,  501,  510,  504,  509,  511,  503,
3093       527,  503,  506,  512,  515,  507,  516,  508,  514,  513,
3094       518,  517,  513,  505,  519,  509,  512,  515,  516,  507,
3095       511,  519,  520,    0,  509,  511,  523,  510,  513,  517,
3096       512,  515,  514,  516,  521,  514,  513,  522,  517,  513,
3097       524,  519,  518,    0,  529,  524,  520,  526,  523,  520,
3098       522,  528,  525,  523,  530,  532,  529,  521,  525,  537,
3099         0,  531,  539,  532,  522,  537,  521,  524,  536,  533,
3100 
3101       526,  529,  531,  528,  526,  536,  530,    0,  528,  525,
3102       538,  530,  532,  533,  521,  539,  537,  541,  531,  539,
3103       540,    0,  538,  554,  542,  536,  533,  534,  540,    0,
3104       554,    0,  534,  543,  534,  542,  545,  538,  547,  541,
3105       534,  547,  534,    0,  541,  534,  534,  540,  545,  547,
3106       554,  542,  534,  534,  534,  546,  543,    0,  544,  534,
3107       543,  534,  544,  545,  549,  547,  548,  534,  547,  534,
3108       551,  550,  534,  534,  549,  546,  552,  546,  555,  534,
3109       544,  551,  546,  550,  548,  544,  553,    0,  557,  544,
3110       553,  559,  556,  548,  556,  558,  549,  551,  550,  560,
3111 
3112       552,  549,  546,  552,  555,  555,  559,  558,  561,  562,
3113       564,  560,  565,  553,  557,  557,  563,  562,  559,  556,
3114       566,  563,  558,  568,  570,  571,  560,  573,  566,  567,
3115       565,  572,  564,  575,  561,  561,  562,  564,  574,  565,
3116       578,  567,  570,  563,  568,  575,    0,  566,  571,  576,
3117       568,  570,  571,  574,  572,  577,  567,  576,  572,  573,
3118       575,  579,  580,  581,  582,  574,  584,  583,  577,  584,
3119       587,  580,  578,  579,  589,    0,  576,  585,  582,  590,
3120       588,  592,  577,  591,    0,  594,  581,  593,  579,  580,
3121       581,  582,  583,  584,  583,  588,  585,  594,  591,  595,
3122 
3123       593,  596,  587,  600,  585,  592,  589,  588,  592,  597,
3124       591,  590,  594,  598,  593,  599,  597,  600,  601,  597,
3125       599,  595,  602,  604,  598,  596,  595,  597,  596,  605,
3126       600,  606,  607,  608,  615,  609,  597,    0,  608,  611,
3127       598,  613,  610,  597,  609,  601,  597,  599,  610,  602,
3128       612,  614,  616,  615,  611,  604,  605,  621,  606,  614,
3129       617,  615,  609,  613,  607,  608,  611,  618,  613,  610,
3130       620,  618,  619,  623,  612,  624,  616,  612,  614,  616,
3131       619,  622,  617,  625,  624,  626,  629,  617,  622,  621,
3132       627,  628,  629,  620,  618,  634,  623,  620,  626,  619,
3133 
3134       623,  630,  624,  628,  632,  625,  631,  635,  622,  636,
3135       625,    0,  626,  629,  631,  632,  627,  627,  628,  633,
3136         0,  639,  636,  630,    0,  645,  633,  634,  630,  635,
3137       637,  632,  638,  631,  635,  637,  636,  645,  637,  637,
3138       640,  638,  641,  644,  647,    0,  633,  639,  639,  640,
3139       642,  643,  645,  641,  637,    0,  644,  637,  649,  638,
3140         0,  648,  637,  651,  650,  637,  637,  640,  653,  641,
3141       644,  651,  642,  643,  652,  654,  647,  642,  643,  648,
3142       656,  659,  649,  655,  657,  649,  650,  650,  648,  656,
3143       651,  650,  653,  660,  655,  653,  652,  654,  658,  661,
3144 
3145       660,  652,  654,  659,  657,  662,  663,  656,  659,  664,
3146       655,  657,  658,  650,  663,  665,  666,  667,  670,  668,
3147       660,  665,    0,  662,  669,  658,  661,  671,  667,  666,
3148       676,  664,  662,  663,  672,  675,  664,  668,  674,  669,
3149       673,  673,  665,  666,  667,  680,  668,  677,  671,  674,
3150       670,  669,  676,  678,  671,  679,  677,  676,  672,  675,
3151       682,  672,  675,  681,  683,  674,  678,  680,  679,  673,
3152       684,  681,  680,  685,  677,  693,  686,  687,  686,  689,
3153       678,  690,  679,  688,  689,  702,  683,  691,  694,    0,
3154       681,  683,  682,    0,  688,  690,  694,  685,  692,  687,
3155 
3156       685,  691,  684,  686,  687,  692,  695,  693,  690,  696,
3157       688,  689,  692,  692,  691,  694,  697,  702,  698,  703,
3158       692,  699,  700,  697,  695,  692,  706,  707,    0,  707,
3159         0,  696,  692,  695,  703,  701,  696,    0,  708,  692,
3160       692,  699,  700,  697,  698,  698,  703,  704,  699,  700,
3161       701,  705,  706,  706,  707,  710,  705,  704,  709,  701,
3162       715,  711,  701,  708,  712,  708,  709,  711,  715,  704,
3163       713,  716,  714,  712,  704,  717,  719,  701,  716,  713,
3164       710,  714,  710,  705,  704,  709,  718,  715,  711,  720,
3165       721,  712,  723,  726,  719,  722,  724,  713,  716,  714,
3166 
3167       723,  720,  721,  719,  722,  724,  725,  717,  727,  718,
3168         0,  728,  729,  718,  733,  727,  720,  721,  725,  723,
3169       724,  730,  722,  724,  728,  726,    0,  729,  731,  730,
3170         0,  734,  724,  725,  731,  727,  732,  733,  728,  729,
3171       734,  733,  735,  736,  732,  737,  737,    0,  730,  738,
3172         0,  739,  736,  735,  737,  731,  743,  738,  734,  739,
3173       740,  741,  744,  732,  742,  746,    0,  747,    0,  735,
3174       736,  748,  737,  737,  741,  744,  738,  745,  739,  743,
3175       747,  746,  740,  743,  749,  745,  751,  740,  741,  744,
3176       742,  742,  746,  748,  747,  749,  752,  750,  748,  753,
3177 
3178       751,  760,  754,  755,  745,  750,  755,  759,  758,  756,
3179       757,  749,  761,  751,  764,  762,  752,  758,  765,  760,
3180       766,  753,  754,  752,  750,  761,  753,  759,  760,  754,
3181       755,  756,  757,  762,  759,  758,  756,  757,  763,  761,
3182       765,  767,  762,  768,  766,  765,  764,  766,  769,  770,
3183       771,  773,  774,  763,  772,  776,  768,  773,  777,    0,
3184       776,  770,  781,  775,  767,  763,  769,  772,  767,    0,
3185       768,  775,  784,  778,  771,  769,  770,  771,  773,  774,
3186       777,  772,  785,    0,  780,  777,  783,  776,  782,  775,
3187       775,  778,  780,  783,  781,  784,  782,  785,  775,  784,
3188 
3189       778,  786,  788,  786,  789,  787,  790,    0,  791,  785,
3190       792,  780,  792,  783,  787,  782,  809,  791,  793,    0,
3191       800,  803,  817,  789,  796,  793,  790,  809,  786,    0,
3192       800,  789,  787,  790,  788,  791,  796,  792,  804,  803,
3193       807,  813,  808,  809,    0,  793,  794,  800,  803,  794,
3194       806,  796,  810,  794,  817,  806,  794,  813,  811,  804,
3195       808,  807,  812,  794,  794,  804,  794,  807,  813,  808,
3196       820,  794,  814,  794,  815,  810,  794,  806,    0,  810,
3197       794,  814,  857,  794,  811,  811,  823,  815,  812,  812,
3198       794,  794,  820,  794,  821,  816,    0,  820,  819,  814,
3199 
3200       821,  815,  816,  822,  824,  819,  826,  824,    0,  823,
3201       827,    0,  822,  823,  857,    0,    0,  828,  827,  825,
3202       829,  821,  816,  818,  818,  819,  818,    0,  826,  818,
3203       822,  824,  829,  826,  818,  825,  830,  827,  830,  828,
3204       818,  818,  825,  818,  828,  831,  825,  829,  835,  818,
3205       818,  818,  832,  818,  833,  836,  818,  832,    0,  834,
3206       835,  818,  825,  830,  837,  838,  840,  818,  818,  831,
3207       818,  839,  831,  841,  833,  835,  842,  836,    0,  843,
3208         0,  833,  836,  863,  832,  834,  834,  838,  840,  844,
3209       837,  837,  838,  840,  843,  839,  845,  844,  839,  847,
3210 
3211       841,  842,  846,  842,  849,  848,  843,  847,  850,  846,
3212       851,  859,  852,    0,  853,  863,  844,  851,  854,  845,
3213       850,  855,  858,  845,  848,  852,  847,  854,  856,  846,
3214       849,  849,  848,  856,  862,  850,  855,  851,  859,  852,
3215       853,  853,  860,  864,  858,  854,  865,  860,  855,  858,
3216       866,  867,  864,  868,  865,  856,  862,  866,  869,  872,
3217       870,  862,  873,    0,  871,  874,    0,  875,    0,  876,
3218       864,  878,  877,  865,  860,  868,  875,  866,  872,  879,
3219       868,  877,  888,  867,  870,  871,  872,  870,  876,  873,
3220       869,  871,  874,  878,  875,  880,  876,  882,  878,  877,
3221 
3222       881,  884,  879,  883,  887,  885,  879,  886,  882,  881,
3223       889,  883,  890,  894,  888,  880,  894,  892,  893,  889,
3224       890,  895,  880,  885,  882,  896,  886,  881,  884,    0,
3225       883,  887,  885,  895,  886,  892,  893,  889,  897,  890,
3226       894,  899,  898,  902,  892,  893,  900,  896,  895,  901,
3227       903,  901,  896,  904,  905,    0,  897,  906,  904,  900,
3228       907,  902,  909,  899,  903,  897,  898,  905,  899,  898,
3229       902,  908,  907,  900,  914,  910,  901,  903,  910,  908,
3230       909,  905,  911,  906,  906,  904,  912,  907,  915,  909,
3231       916,  911,  917,    0,  912,    0,  916,  918,  908,  914,
3232 
3233       919,  914,  910,  918,  920,  921,    0,  924,  929,  911,
3234       912,  920,  921,  912,  917,  915,  925,  916,  922,  917,
3235       925,  912,  919,  922,  918,  924,  923,  919,  926,  927,
3236       930,  920,  921,  923,  924,  931,  928,  935,  927,  933,
3237       929,  932,  936,  925,  928,  922,  934,  933,  930,  938,
3238       931,  926,  932,  923,  937,  926,  927,  930,  935,  934,
3239       939,  936,  931,  928,  935,  941,  933,  937,  932,  936,
3240       940,  938,  941,  934,    0,  942,  938,  943,  940,  944,
3241       946,  937,  945,  947,  943,  946,  950,  939,  948,  945,
3242       951,  947,  941,  942,  949,  948,  953,  940,  944,  952,
3243 
3244       954,  949,  942,  956,  943,  957,  944,  946,    0,  945,
3245       947,  958,  952,  954,  961,  948,  955,  959,  950,    0,
3246       964,  949,  951,  955,  960,  959,  952,  954,  953,  963,
3247       965,  969,  960,  966,  958,  956,  961,  957,  958,  960,
3248       962,  961,  970,  955,  959,  967,  962,  968,  971,  970,
3249         0,  960,  964,    0,  967,  963,  963,  966,  973,  960,
3250       966,  968,  965,  969,  972,  975,  974,  962,  978,  970,
3251       975,  976,  967,  972,  968,  971,  977,  979,  983,  974,
3252       973,  974,  979,  976,    0,  973,  983,  982,  981,  980,
3253       974,  972,    0,  974,  978,  978,  980,  975,  976,  977,
3254 
3255       981, 1020,  994,  977,  979,  983,  974,  985,  974,  982,
3256       985,  986,  987,  989,  982,  981,  980,  991,  995,  990,
3257         0,  993,    0,  991,  986,  987,  990,  989,  994,  994,
3258       996,  997,    0, 1020,  985,  998,    0,  998,  986,  987,
3259       989,  995,  996,  993,  991,  995,  990,  992,  993,  992,
3260       999,  999, 1000,  992, 1001,  992,    0,  996,  997, 1003,
3261       992, 1002,  998, 1004, 1000,  992, 1005, 1001, 1004,    0,
3262         0,  992, 1003,  999,  992,    0,  992,  999,  999, 1000,
3263       992, 1001,  992, 1002, 1005, 1006, 1003,  992, 1002, 1008,
3264      1007,    0,  992, 1005, 1010, 1004, 1009, 1011, 1006, 1013,
3265 
3266         0, 1008, 1007, 1017, 1014,    0, 1009, 1012, 1022, 1010,
3267      1014, 1018, 1006, 1007, 1015, 1019, 1008, 1007, 1009, 1011,
3268      1012, 1010, 1016, 1009, 1011, 1017, 1013, 1015, 1021, 1007,
3269      1017, 1014, 1018, 1009, 1012, 1022, 1024, 1019, 1018, 1025,
3270      1016, 1015, 1019, 1026, 1025, 1027,    0, 1029, 1031, 1016,
3271         0, 1026, 1032,    0, 1027, 1030,    0, 1033,    0,    0,
3272      1021, 1031, 1029, 1034,    0, 1042, 1025, 1032, 1024, 1035,
3273      1026,    0, 1027, 1028, 1029, 1031, 1036, 1030, 1028, 1032,
3274      1028, 1038, 1030, 1033, 1033, 1034, 1028, 1039, 1035, 1036,
3275      1034, 1028, 1028, 1037, 1038, 1039, 1035, 1042, 1028, 1028,
3276 
3277      1028, 1040, 1043, 1036, 1037, 1028, 1041, 1028, 1038, 1040,
3278      1049, 1044, 1045, 1028, 1039, 1053, 1046, 1041, 1028, 1028,
3279      1037, 1045, 1047, 1048, 1043, 1028, 1044, 1046, 1040, 1043,
3280      1050, 1047, 1048, 1041, 1051, 1054, 1055, 1049, 1044, 1045,
3281      1057, 1051, 1056, 1046, 1055, 1058, 1059, 1053, 1060, 1047,
3282      1048, 1065, 1062, 1050, 1057, 1064, 1060, 1050, 1063, 1054,
3283      1066, 1051, 1054, 1055, 1056, 1071, 1064, 1057, 1059, 1056,
3284      1062, 1068, 1067, 1059, 1069, 1060, 1063, 1058, 1066, 1062,
3285      1067, 1069, 1064, 1065, 1070, 1063, 1076, 1066, 1072, 1073,
3286      1074, 1071, 1071, 1068, 1075, 1072, 1077, 1070, 1068, 1067,
3287 
3288      1078, 1069, 1086, 1080, 1073,    0, 1077, 1076, 1074, 1082,
3289         0, 1070, 1075, 1076, 1080, 1072, 1073, 1074, 1083, 1085,
3290      1087, 1075, 1082, 1077, 1084, 1083, 1084, 1088, 1087, 1089,
3291      1080, 1090, 1078, 1091, 1086, 1092, 1082, 1095, 1089, 1096,
3292      1088, 1085, 1098, 1090,    0, 1083, 1085, 1087, 1099, 1097,
3293      1100, 1084, 1101,    0, 1088, 1091, 1089, 1092, 1090, 1095,
3294      1091, 1096, 1092, 1102, 1095, 1110, 1096, 1097, 1098, 1098,
3295      1101, 1103, 1105, 1106, 1108, 1102, 1097, 1108, 1106, 1101,
3296      1099, 1109, 1100, 1105, 1111, 1103, 1114, 1112, 1118, 1110,
3297      1102, 1113, 1110, 1109, 1112, 1116, 1120, 1111, 1103, 1105,
3298 
3299      1108, 1108, 1113, 1115, 1108, 1106, 1114, 1117, 1109, 1116,
3300      1119, 1111, 1115, 1114, 1112, 1121, 1122, 1119, 1113, 1117,
3301      1118, 1125, 1116, 1123, 1128, 1126, 1127, 1121, 1120, 1130,
3302      1115,    0, 1127, 1129, 1117,    0, 1123, 1119, 1122, 1131,
3303      1130, 1132, 1121, 1122, 1134, 1133, 1128, 1125, 1125, 1126,
3304      1123, 1128, 1126, 1127, 1136, 1129, 1130, 1131, 1137, 1134,
3305      1129, 1138, 1140, 1132, 1139, 1141, 1131, 1133, 1132, 1137,
3306      1139, 1134, 1133, 1144, 1143, 1136, 1145, 1142, 1146, 1148,
3307      1151, 1136, 1138, 1143, 1149, 1137, 1148, 1146, 1138, 1152,
3308      1147, 1139, 1141, 1150, 1140, 1142, 1153, 1144, 1147, 1165,
3309 
3310      1144, 1143, 1145, 1145, 1142, 1146, 1148, 1150, 1149, 1154,
3311      1155, 1149, 1151, 1156, 1158, 1161, 1157, 1147,    0, 1163,
3312      1150, 1152, 1160, 1162, 1161, 1164, 1165, 1178, 1153,    0,
3313      1162, 1154, 1155, 1168, 1171, 1166, 1154, 1155, 1157, 1167,
3314      1170, 1172, 1161, 1157, 1160, 1156, 1158, 1164, 1170, 1160,
3315      1162, 1163, 1164, 1166, 1169, 1168, 1173, 1167, 1171, 1178,
3316      1168, 1171, 1166, 1169, 1174, 1172, 1167, 1170, 1172, 1175,
3317      1176, 1177, 1173, 1179, 1182, 1180, 1183, 1181, 1175, 1177,
3318      1184, 1169,    0, 1173, 1183, 1176, 1174, 1180,    0, 1194,
3319         0, 1174, 1189, 1184, 1185,    0, 1175, 1176, 1177, 1181,
3320 
3321      1208, 1182, 1180, 1183, 1181, 1179, 1186, 1184, 1188, 1185,
3322      1189, 1191, 1190, 1191, 1193, 1186, 1194, 1188, 1195, 1189,
3323      1190, 1185, 1193, 1198, 1196, 1197, 1203, 1200, 1206, 1202,
3324      1198, 1201, 1208, 1186, 1209, 1188,    0, 1195, 1191, 1190,
3325      1200, 1193, 1204, 1201, 1202, 1195, 1196, 1197, 1203, 1205,
3326      1198, 1196, 1197, 1203, 1200, 1206, 1202, 1207, 1201, 1210,
3327      1204, 1205, 1211, 1212, 1207,    0, 1209, 1213, 1215, 1204,
3328      1216, 1210,    0, 1211, 1214, 1218, 1205, 1217, 1221, 1220,
3329      1219, 1215, 1225, 1216, 1207, 1212, 1210, 1218, 1219, 1211,
3330      1212, 1227, 1213,    0, 1213, 1215, 1214, 1216, 1221, 1217,
3331 
3332      1222, 1214, 1218, 1220, 1217, 1221, 1220, 1219, 1223, 1225,
3333      1226, 1228, 1222, 1229, 1227, 1230, 1223, 1231, 1227, 1232,
3334      1228, 1235, 1234, 1226, 1231, 1229, 1237, 1222, 1232, 1236,
3335      1232,    0, 1238, 1232, 1240, 1223, 1230, 1226, 1228, 1248,
3336      1229, 1232, 1230,    0, 1231, 1234, 1232, 1235, 1235, 1234,
3337      1239, 1236, 1238, 1237, 1241, 1232, 1236, 1232, 1240, 1238,
3338      1232, 1240, 1241, 1239, 1242, 1243, 1245, 1246, 1249, 1247,
3339      1251, 1248, 1250, 1242, 1252, 1246, 1254, 1239, 1255,    0,
3340      1256, 1241, 1252, 1243, 1247, 1250, 1251, 1258, 1245, 1259,
3341      1249, 1242, 1243, 1245, 1246, 1249, 1247, 1251, 1261, 1250,
3342 
3343      1255, 1252, 1256, 1254, 1257, 1255, 1260, 1256, 1262, 1258,
3344      1261, 1257, 1259, 1263, 1258, 1265, 1259, 1264, 1266, 1267,
3345      1262, 1263, 1268, 1269, 1260, 1261, 1264, 1265, 1270, 1269,
3346      1268, 1257, 1273, 1260, 1267, 1262, 1271, 1270, 1266, 1272,
3347      1263, 1264, 1265, 1274, 1264, 1266, 1267, 1275, 1273, 1268,
3348      1269, 1272, 1277, 1264, 1275, 1270, 1278, 1271, 1276, 1273,
3349      1284, 1279, 1280, 1271, 1281, 1276, 1272, 1287, 1278, 1279,
3350      1277, 1282, 1281, 1282, 1275, 1274,    0, 1280, 1283, 1277,
3351      1285, 1288, 1289, 1278, 1290, 1276, 1292, 1285, 1279, 1280,
3352      1283, 1281, 1284, 1288, 1291, 1289, 1293, 1292, 1282, 1287,
3353 
3354      1294, 1291, 1296, 1290, 1299, 1283, 1297, 1285, 1288, 1289,
3355      1296, 1290, 1295, 1292, 1298, 1294, 1303, 1295, 1293, 1297,
3356      1301, 1291, 1308, 1293, 1302,    0,    0, 1294, 1298, 1296,
3357      1299, 1299, 1304, 1297, 1301,    0,    0, 1307, 1305, 1306,
3358         0, 1298, 1302, 1311, 1295, 1300, 1309, 1301, 1303, 1300,
3359      1317, 1302, 1300, 1300, 1308, 1307, 1310, 1300, 1304, 1304,
3360      1305, 1313, 1306, 1300, 1307, 1305, 1306, 1300, 1309, 1311,
3361      1311, 1300, 1300, 1309, 1318, 1312, 1300, 1316, 1310, 1300,
3362      1300, 1312, 1317, 1310, 1300, 1315, 1316, 1313, 1313, 1314,
3363      1300, 1314, 1315, 1319, 1300, 1323, 1320, 1322, 1321, 1325,
3364 
3365      1324, 1327, 1312, 1329, 1316, 1321, 1318, 1326, 1323, 1324,
3366      1328,    0, 1315, 1314, 1320, 1330, 1314, 1319, 1314, 1322,
3367      1319, 1353, 1323, 1320, 1322, 1321, 1329, 1324, 1326, 1330,
3368      1329, 1325, 1328, 1327, 1326, 1332, 1333, 1328, 1334, 1335,
3369      1335,    0, 1330, 1331, 1336,    0, 1338, 1339, 1331, 1333,
3370      1331, 1340, 1331, 1353, 1331,    0,    0, 1332, 1340, 1339,
3371      1336, 1331, 1332, 1333, 1334, 1334, 1342, 1341, 1335, 1338,
3372      1331, 1336, 1344, 1338, 1339, 1331, 1341, 1331, 1340, 1331,
3373      1343, 1331, 1345, 1346, 1342, 1343, 1347, 1349, 1346, 1348,
3374      1344, 1354, 1355, 1342, 1341, 1350, 1351,    0, 1352, 1344,
3375 
3376      1345, 1356, 1348, 1350, 1351, 1349, 1360, 1355, 1347, 1345,
3377      1346, 1352, 1343, 1347, 1349, 1358, 1348, 1354, 1354, 1355,
3378      1356, 1357, 1350, 1351, 1360, 1352, 1359, 1361, 1356, 1362,
3379      1363,    0, 1363, 1360, 1357, 1365, 1364, 1358, 1362, 1359,
3380      1366, 1367, 1358, 1368, 1369,    0,    0, 1361, 1357, 1371,
3381      1372, 1373, 1366, 1359, 1361, 1375, 1362, 1363, 1364, 1373,
3382      1377, 1374, 1365, 1364, 1378, 1368, 1383, 1366, 1367, 1369,
3383      1368, 1369, 1372, 1371, 1376, 1379, 1371, 1372, 1373, 1374,
3384      1380, 1376, 1375, 1381, 1385, 1386, 1380, 1377, 1374, 1381,
3385      1378, 1378, 1382, 1383, 1385, 1388, 1384, 1379, 1382, 1387,
3386 
3387         0, 1376, 1379, 1384, 1390, 1392, 1387, 1380, 1389, 1386,
3388      1381, 1385, 1386, 1391, 1392, 1394, 1395,    0, 1400, 1382,
3389      1396,    0, 1390, 1384, 1397,    0, 1387, 1388, 1395, 1402,
3390      1389, 1390, 1392, 1399, 1396, 1389, 1398, 1400, 1391, 1394,
3391      1391, 1404, 1394, 1395, 1401, 1400, 1397, 1396, 1403, 1398,
3392      1405, 1397, 1406, 1402, 1408, 1399, 1402, 1407, 1411, 1409,
3393      1399, 1406, 1412, 1398,    0, 1413, 1401, 1404, 1404, 1414,
3394      1403, 1401, 1405, 1409, 1408, 1403, 1415, 1405, 1407, 1406,
3395      1416, 1408, 1419, 1418, 1407, 1417, 1409, 1413, 1420, 1422,
3396      1411, 1414, 1413, 1417, 1412, 1420, 1414, 1423, 1416, 1418,
3397 
3398      1424, 1425, 1428, 1429, 1430, 1433, 1423, 1416, 1415, 1419,
3399      1418, 1422, 1417, 1425, 1426, 1420, 1422, 1424, 1427, 1436,
3400      1431, 1426, 1427, 1435, 1423, 1430, 1434, 1424, 1425, 1438,
3401      1435, 1430, 1434, 1437, 1428, 1429, 1431, 1433, 1441, 1434,
3402      1437, 1426, 1439, 1440, 1438, 1427, 1443, 1431, 1443, 1444,
3403      1435, 1436, 1440, 1434, 1442, 1439, 1438, 1445, 1444, 1434,
3404      1437, 1442, 1446, 1447, 1441, 1441, 1449, 1451, 1448, 1439,
3405      1440, 1446, 1448, 1443, 1452, 1451, 1444, 1453, 1455, 1445,
3406      1456, 1442, 1453, 1454, 1445, 1457, 1461, 1452, 1449, 1446,
3407      1447, 1458, 1454, 1449, 1451, 1448, 1455, 1460, 1457, 1456,
3408 
3409      1460, 1452, 1463, 1458, 1461, 1455, 1462, 1456, 1459, 1453,
3410      1454, 1459, 1457, 1461, 1465, 1463, 1466, 1468, 1458, 1460,
3411      1459, 1467, 1468, 1471, 1460, 1472, 1469, 1460, 1487, 1463,
3412      1507, 1462, 1471, 1462, 1469, 1459, 1473, 1467, 1459, 1466,
3413      1470, 1470, 1474, 1466, 1476, 1475, 1465, 1472, 1467, 1468,
3414      1471, 1476, 1472, 1469, 1475, 1477, 1481, 1480, 1473, 1478,
3415      1487, 1483, 1507, 1473, 1474, 1481, 1478, 1470, 1484, 1474,
3416      1480, 1476, 1475, 1486,    0, 1488, 1482, 1477,    0, 1491,
3417      1485, 1486, 1477, 1481, 1480, 1482, 1478, 1483, 1483, 1485,
3418      1488, 1484, 1491, 1489, 1495, 1484, 1492, 1490, 1493, 1496,
3419 
3420      1486, 1494, 1488, 1482, 1489, 1490, 1491, 1485, 1492, 1494,
3421      1493, 1497, 1500, 1498, 1499, 1508, 1495, 1501, 1500, 1496,
3422      1489, 1495, 1498, 1492, 1490, 1493, 1496, 1499, 1494, 1502,
3423      1503, 1504, 1509, 1497, 1506, 1501, 1505, 1511, 1497, 1500,
3424      1498, 1499, 1503, 1505, 1501, 1509, 1510, 1508, 1512, 1504,
3425      1516, 1513, 1515, 1517, 1518, 1502, 1502, 1503, 1504, 1509,
3426      1506, 1506, 1513, 1505, 1511, 1514,    0, 1519, 1522, 1512,
3427      1520, 1514, 1510, 1510, 1515, 1512, 1523,    0, 1513, 1515,
3428      1524, 1525, 1516, 1530, 1529, 1517, 1518, 1526, 1527, 1520,
3429      1525, 1520, 1514, 1519, 1519, 1522, 1520, 1520, 1524, 1523,
3430 
3431      1528, 1527, 1526, 1523, 1529, 1532, 1531, 1524, 1525, 1530,
3432      1530, 1529, 1528, 1531, 1526, 1527, 1520, 1533, 1520, 1538,
3433      1535, 1534, 1539, 1543, 1532, 1536, 1537, 1528, 1535, 1539,
3434      1536, 1537, 1532, 1531, 1534, 1540, 1548, 1541, 1544, 1533,
3435         0, 1543, 1538, 1542, 1533, 1541, 1538, 1535, 1534, 1539,
3436      1543, 1542, 1546, 1554, 1549, 1545,    0, 1536, 1537, 1546,
3437      1544, 1540, 1540, 1545, 1541, 1544, 1547, 1551, 1548, 1550,
3438      1542, 1552, 1553, 1553, 1551, 1547, 1549, 1557, 1550, 1546,
3439      1555, 1549, 1545, 1552, 1556, 1554, 1559, 1558, 1555, 1560,
3440      1564,    0, 1561, 1547, 1551, 1558, 1550, 1560, 1552, 1553,
3441 
3442      1561, 1567, 1562, 1564, 1559, 1556, 1566, 1555, 1568, 1557,
3443      1562, 1556, 1563, 1559, 1558, 1565, 1560, 1564, 1566, 1561,
3444      1563, 1565, 1569, 1570, 1572, 1571, 1573, 1567, 1567, 1562,
3445      1569, 1570, 1568, 1566, 1574, 1568, 1575,    0,    0, 1563,
3446      1571, 1576, 1565,    0, 1578, 1577, 1579, 1588, 1584, 1569,
3447      1570, 1572, 1571, 1573, 1583, 1576, 1574, 1577, 1582, 1575,
3448      1579, 1574, 1578, 1575, 1585, 1580, 1589, 1582, 1576, 1580,
3449      1584, 1578, 1577, 1579, 1588, 1584, 1585, 1586, 1583, 1590,
3450      1593, 1583, 1580, 1587, 1586, 1582, 1591, 1592, 1589,    0,
3451      1580, 1585, 1580, 1589, 1587, 1594, 1580, 1595, 1591, 1597,
3452 
3453      1596, 1592, 1602, 1599, 1586, 1601, 1597, 1598, 1600, 1580,
3454      1587, 1590, 1593, 1591, 1592, 1600, 1598, 1594, 1606, 1604,
3455      1595, 1599, 1594, 1596, 1595, 1607, 1597, 1596, 1604, 1602,
3456      1599, 1607, 1608, 1610, 1598, 1600, 1609, 1601,    0, 1613,
3457      1611,    0, 1616,    0, 1615, 1617, 1604, 1611,    0, 1618,
3458      1606, 1621, 1607, 1619, 1608, 1622, 1617, 1626, 1632, 1608,
3459      1618, 1622, 1609, 1609, 1619, 1610, 1613, 1611, 1615, 1616,
3460      1623, 1615, 1617, 1624, 1625, 1621, 1618, 1623, 1621, 1628,
3461      1619, 1625, 1622, 1626, 1626, 1628, 1627, 1629, 1630, 1631,
3462      1632, 1624, 1633, 1634, 1635, 1629, 1636, 1623, 1627, 1639,
3463 
3464      1624, 1625, 1631, 1635, 1644, 1637, 1628, 1637, 1636, 1640,
3465      1630, 1634, 1642, 1627, 1629, 1630, 1631, 1638, 1633, 1633,
3466      1634, 1635, 1640, 1636, 1638, 1639, 1639, 1645, 1641, 1643,
3467      1650, 1644, 1637, 1646, 1642, 1647, 1640, 1641, 1648, 1642,
3468      1646, 1643, 1653, 1648, 1638, 1649, 1650, 1651, 1655, 1656,
3469      1645, 1652, 1657, 1649, 1645, 1641, 1643, 1650, 1658, 1652,
3470      1646, 1647, 1647,    0, 1653, 1648, 1657,    0, 1660, 1653,
3471      1651, 1659, 1649, 1656, 1651, 1655, 1656, 1660, 1652, 1657,
3472      1658, 1661, 1659, 1662, 1662, 1658, 1663, 1664, 1665, 1664,
3473      1666, 1662, 1671, 1668, 1661, 1660, 1667, 1669, 1659, 1663,
3474 
3475      1668, 1670, 1677, 1672, 1669, 1673, 1665,    0, 1661, 1670,
3476      1662, 1662, 1675, 1663, 1664, 1665, 1666, 1666, 1667, 1671,
3477      1668, 1672, 1674, 1667, 1669, 1676, 1678, 1673, 1670, 1674,
3478      1672, 1679, 1673, 1678, 1677, 1680,    0, 1675, 1682, 1675,
3479      1683,    0, 1684, 1686, 1688, 1689, 1685, 1676, 1689, 1674,
3480      1684, 1682, 1676, 1678, 1685, 1690, 1695, 1680, 1691, 1693,
3481      1701, 1692, 1680, 1679, 1686, 1682, 1688, 1683, 1693, 1684,
3482      1686, 1688, 1689, 1685, 1692, 1694,    0, 1696, 1698,    0,
3483      1695, 1690, 1690, 1695, 1691, 1691, 1693, 1694, 1692, 1697,
3484      1699, 1700, 1701, 1698, 1700,    0, 1703, 1699, 1697, 1709,
3485 
3486      1702, 1705, 1694, 1696, 1696, 1698, 1700, 1706, 1707, 1711,
3487      1707, 1710, 1703, 1708, 1710, 1700, 1697, 1699, 1700, 1705,
3488      1703, 1700, 1702, 1703, 1712, 1713, 1709, 1702, 1705, 1706,
3489         0, 1714, 1716, 1700, 1706, 1707, 1715, 1708, 1710, 1703,
3490      1708, 1711, 1719, 1717, 1722, 1718, 1720, 1713, 1721, 1723,
3491      1724, 1719, 1713, 1725, 1720, 1721, 1712, 1714, 1714, 1718,
3492      1727, 1726, 1715, 1715, 1716, 1717, 1730, 1729, 1722, 1719,
3493      1717, 1722, 1718, 1720, 1728, 1721, 1731, 1732, 1728, 1734,
3494      1733, 1723, 1724, 1726,    0, 1725, 1732, 1733, 1726, 1729,
3495         0, 1734, 1727, 1730, 1729, 1736, 1737, 1735, 1731, 1738,
3496 
3497      1739, 1728, 1736, 1731, 1732, 1735, 1734, 1733, 1740, 1737,
3498      1742, 1743, 1738, 1739, 1741, 1747, 1741, 1740, 1749, 1745,
3499      1744, 1750, 1736, 1737, 1735, 1748, 1738, 1739, 1744,    0,
3500      1747, 1756, 1749, 1742,    0, 1740, 1743, 1742, 1743, 1745,
3501      1748, 1741, 1747, 1751, 1752, 1749, 1745, 1744, 1754, 1753,
3502      1751,    0, 1748, 1750, 1755, 1752, 1753, 1756, 1756, 1757,
3503      1759, 1754, 1760, 1761, 1762,    0, 1763,    0, 1764, 1760,
3504      1751, 1752, 1755, 1767,    0, 1754, 1753, 1757, 1755, 1762,
3505      1764, 1755, 1767, 1765, 1768, 1761, 1757, 1759, 1770, 1760,
3506      1761, 1762, 1763, 1763, 1766, 1764, 1765, 1766, 1772, 1755,
3507 
3508      1767, 1769, 1768, 1778, 1771, 1776, 1779, 1771, 1770, 1772,
3509      1765, 1768, 1774, 1769, 1776, 1770, 1777, 1774, 1777, 1780,
3510      1781, 1766, 1771,    0, 1774, 1772, 1783, 1778, 1769, 1782,
3511      1778, 1771, 1776, 1779, 1771, 1781, 1784, 1785, 1782, 1774,
3512      1786, 1789,    0, 1777, 1774, 1800, 1780, 1781, 1786, 1787,
3513      1783, 1785, 1788, 1783, 1790, 1791, 1782, 1794, 1792, 1793,
3514      1790, 1795, 1799, 1784, 1785, 1789, 1792, 1786, 1789, 1795,
3515      1793, 1787, 1800, 1798, 1788, 1794, 1787, 1791,    0, 1788,
3516      1796, 1790, 1791, 1796, 1794, 1792, 1793, 1797, 1795, 1801,
3517      1797, 1798, 1802, 1804, 1799, 1805, 1813, 1803, 1796, 1802,
3518 
3519      1798, 1806, 1804, 1808,    0, 1813, 1809, 1796, 1805, 1801,
3520      1796, 1803, 1806, 1807, 1797, 1812, 1801, 1812, 1807, 1802,
3521      1804, 1809, 1805, 1813, 1803, 1808, 1814, 1815, 1806, 1816,
3522      1808, 1817,    0, 1809, 1818,    0, 1819, 1824, 1818, 1823,
3523      1816, 1820, 1812, 1824, 1820, 1807, 1822, 1821, 1823, 1817,
3524      1819, 1815, 1814, 1814, 1815, 1833, 1816, 1836, 1817, 1820,
3525      1818, 1818, 1819, 1819, 1824, 1818, 1823, 1825, 1820, 1821,
3526      1826, 1820, 1822, 1822, 1821, 1826, 1825, 1819, 1828, 1830,
3527      1829, 1831, 1832, 1835, 1830,    0, 1838, 1833, 1834, 1836,
3528      1837, 1828, 1829, 1839, 1825, 1832,    0, 1834, 1845, 1838,
3529 
3530      1840, 1844, 1826, 1831, 1842, 1828, 1830, 1829, 1831, 1832,
3531      1835, 1842, 1837, 1838, 1844, 1834, 1843, 1837, 1846, 1848,
3532      1847, 1840, 1850, 1843,    0, 1839, 1847, 1840, 1844, 1852,
3533      1845, 1842, 1846, 1855, 1853, 1856, 1857, 1852, 1854, 1864,
3534      1859, 1850, 1853, 1843, 1847, 1846, 1854, 1847, 1865, 1850,
3535      1858, 1848, 1855, 1847, 1857, 1860, 1852, 1856, 1859, 1861,
3536      1855, 1853, 1856, 1857, 1858, 1854, 1862, 1859, 1863, 1860,
3537      1866, 1864, 1861, 1867, 1868, 1870, 1869, 1858, 1872, 1862,
3538      1865, 1874, 1860, 1869, 1870, 1873, 1861, 1867, 1871, 1863,
3539         0, 1879,    0, 1862, 1866, 1863, 1871, 1866, 1877, 1873,
3540 
3541      1867, 1868, 1870, 1869, 1875, 1872, 1876, 1877, 1882, 1875,
3542      1884, 1881, 1873, 1874, 1880, 1871, 1863, 1876, 1879, 1883,
3543      1885, 1880, 1886, 1887, 1891, 1877, 1883, 1887, 1889, 1894,
3544      1882, 1875, 1884, 1876, 1881, 1882, 1890, 1884, 1881, 1898,
3545      1886, 1880, 1885, 1892, 1889, 1893, 1883, 1885, 1891, 1886,
3546      1887, 1891, 1895, 1896, 1890, 1889, 1894, 1893, 1892, 1897,
3547      1895, 1899, 1900, 1890, 1901, 1908, 1898, 1897, 1896, 1904,
3548      1892, 1912, 1893, 1906,    0, 1900, 1904, 1902, 1903, 1895,
3549      1896, 1906, 1911, 1899, 1901, 1915, 1897, 1907, 1899, 1900,
3550      1910, 1901, 1902, 1903, 1907, 1909, 1904, 1908, 1912, 1910,
3551 
3552      1906, 1913, 1917, 1911, 1902, 1903, 1914, 1918, 1919, 1911,
3553      1909, 1920, 1915, 1914, 1907, 1921,    0, 1910,    0, 1922,
3554      1923, 1941, 1909, 1925, 1917, 1913, 1919, 1924, 1913, 1917,
3555      1925, 1926, 1927, 1914, 1922, 1919, 1926, 1931, 1929, 1918,
3556      1928, 1927, 1921, 1920, 1930, 1923, 1922, 1923, 1932, 1928,
3557      1925, 1924, 1934, 1941, 1924, 1931, 1933,    0, 1926, 1927,
3558      1929,    0, 1938, 1932, 1931, 1929, 1930, 1928, 1933, 1935,
3559      1936, 1930, 1940, 1937, 1934, 1932, 1939, 1936, 1945, 1934,
3560      1937, 1944, 1935, 1933, 1938, 1942, 1945, 1935, 1939, 1938,
3561      1946, 1942, 1944, 1947, 1948, 1937, 1935, 1936, 1946, 1940,
3562 
3563      1937, 1948, 1949, 1939, 1947, 1945, 1951, 1937, 1944, 1935,
3564      1952, 1950, 1942, 1950, 1953, 1954, 1955, 1946, 1956, 1957,
3565      1947, 1948, 1954, 1960, 1950, 1957, 1961, 1949, 1958, 1949,
3566      1959, 1962, 1951, 1951, 1958, 1963, 1959, 1952, 1950, 1965,
3567      1950, 1953, 1954, 1955, 1956, 1956, 1957, 1966, 1967, 1961,
3568      1960, 1969, 1971, 1961, 1968, 1958, 1966, 1959, 1968, 1963,
3569      1972, 1973, 1963, 1962, 1970, 1975, 1970, 1974, 1973, 1977,
3570      1976, 1965,    0, 1969, 1966, 1977, 1971, 1978, 1969, 1971,
3571      1967, 1968, 1976, 1979, 1982, 1980, 1981, 1972, 1973, 1974,
3572      1987, 1970, 1975, 1993, 1974,    0, 1977, 1976, 1993, 1978,
3573 
3574      1983, 1983, 1983,    0, 1978, 1979, 2003, 1983, 1981, 1985,
3575      1979, 1980, 1980, 1981, 1984, 1983, 1982, 1986, 1985, 1988,
3576      1990, 1984, 1987, 1989, 1986, 1993, 1988, 1983, 1983, 1983,
3577      1989, 1991, 1994, 2003, 1983, 1996, 1985, 1995, 1997, 1998,
3578      1990, 1984, 1999, 2000, 1986, 1994, 1988, 1990, 2001, 1995,
3579      1989, 1998, 2005, 1991, 1997, 2001, 2008, 2002, 1991, 1994,
3580      1996, 2000, 1996, 2002, 1995, 1997, 1998, 2004, 2004, 2006,
3581      2000, 2009, 2007, 2010, 1999, 2001, 2006, 2007, 2005, 2005,
3582      2011, 2014, 2008, 2008, 2002, 2016, 2015, 2011, 2015, 2019,
3583      2020, 2018, 2023, 2021, 2004, 2019, 2006, 2024, 2009, 2007,
3584 
3585      2010, 2021, 2026, 2016, 2022, 2023, 2027, 2011, 2014, 2018,
3586      2028, 2025, 2016, 2015, 2026, 2022, 2019, 2025, 2018, 2023,
3587      2021, 2030, 2020, 2031, 2024, 2033, 2027, 2035, 2028, 2026,
3588      2037, 2022,    0, 2027, 2029, 2029, 2033, 2028, 2025, 2032,
3589      2032, 2036, 2038, 2040, 2039, 2041, 2043, 2030, 2030, 2038,
3590      2031, 2044, 2033, 2045, 2043, 2046,    0, 2050, 2047, 2035,
3591      2057, 2029, 2037, 2036, 2039, 2050, 2032, 2048, 2036, 2038,
3592      2041, 2039, 2041, 2043, 2049, 2040, 2047, 2046, 2051, 2048,
3593      2045, 2049, 2046, 2044, 2050, 2047, 2053, 2054, 2052, 2055,
3594      2055, 2056, 2057, 2058, 2048, 2059, 2054, 2060, 2067, 2061,
3595 
3596         0, 2049, 2051, 2052, 2060, 2051, 2062,    0, 2058, 2066,
3597      2053, 2061, 2064, 2053, 2054, 2052, 2055, 2056, 2056, 2064,
3598      2058, 2073, 2062, 2065, 2060, 2067, 2061, 2059, 2065, 2062,
3599      2069, 2066, 2068, 2062, 2070, 2068, 2066, 2072, 2069, 2064,
3600      2074, 2075, 2076, 2077, 2073, 2072, 2070, 2078, 2073, 2062,
3601      2065, 2081, 2079,    0,    0, 2084,    0, 2069, 2089, 2068,
3602      2076, 2070, 2075, 2084, 2072, 2078, 2074, 2074, 2075, 2076,
3603      2077, 2080, 2083, 2085, 2078, 2079, 2080, 2082, 2081, 2079,
3604      2090, 2086, 2084, 2082, 2087, 2083, 2088, 2080, 2086, 2090,
3605      2089, 2087, 2092, 2088, 2091, 2085, 2093, 2094, 2080, 2083,
3606 
3607      2085, 2095, 2096, 2080, 2082, 2102, 2091, 2090, 2086, 2100,
3608      2093, 2087, 2098, 2088, 2092, 2099, 2100, 2104, 2101, 2092,
3609      2099, 2091, 2106, 2093, 2094, 2096, 2108, 2095, 2095, 2096,
3610      2098, 2099, 2102, 2105, 2109, 2109, 2100, 2110, 2105, 2098,
3611      2101, 2111, 2099, 2112, 2104, 2101, 2115, 2099,    0, 2119,
3612      2117, 2114, 2116, 2118, 2106, 2118, 2111, 2120, 2108, 2110,
3613      2121, 2109, 2120, 2122, 2110, 2105, 2114, 2116, 2111, 2115,
3614      2126, 2139, 2125, 2115, 2123, 2112, 2117, 2117, 2114, 2116,
3615      2118, 2119, 2123, 2128, 2120, 2126, 2124, 2129, 2132, 2130,
3616      2122, 2134, 2121, 2124, 2125, 2129, 2133, 2126, 2128, 2125,
3617 
3618      2135, 2123, 2136, 2139, 2140, 2138, 2141, 2137, 2143, 2142,
3619      2128, 2130, 2138, 2124, 2129, 2132, 2130, 2134, 2134, 2137,
3620      2133, 2145, 2146, 2133, 2149, 2140, 2143, 2135, 2141, 2136,
3621      2142, 2140, 2138, 2141, 2137, 2143, 2142, 2148, 2150,    0,
3622      2151, 2153, 2154, 2145, 2156,    0, 2161, 2149, 2145, 2146,
3623      2155, 2149, 2157, 2150, 2158, 2162, 2153, 2154, 2159, 2160,
3624      2163, 2148, 2162, 2168, 2148, 2150, 2151, 2151, 2153, 2154,
3625      2157, 2156, 2155, 2161, 2166, 2164, 2158, 2155, 2163, 2157,
3626      2159, 2158, 2162, 2160, 2164, 2159, 2160, 2163, 2165, 2167,
3627      2169, 2170, 2172, 2178, 2171, 2168, 2165, 2166, 2175, 2169,
3628 
3629      2178, 2166, 2164, 2171, 2176, 2172, 2177, 2175, 2179, 2170,
3630      2180, 2167, 2174, 2187, 2181, 2165, 2167, 2169, 2170, 2172,
3631      2178, 2171, 2176, 2174, 2177, 2175, 2182, 2183, 2180, 2181,
3632      2184, 2176, 2182, 2177, 2179, 2179, 2189, 2180, 2174, 2174,
3633      2187, 2181, 2198, 2194, 2184, 2190, 2202, 2191, 2192, 2183,
3634      2174, 2195, 2196, 2182, 2183, 2194, 2190, 2184, 2191, 2192,
3635      2189, 2197, 2199, 2189, 2195, 2205, 2200, 2201, 2198, 2198,
3636      2194, 2197, 2190, 2202, 2191, 2192, 2201, 2203, 2195, 2200,
3637      2206, 2208, 2209, 2210, 2196, 2208, 2211, 2199, 2197, 2199,
3638      2212, 2214, 2205, 2200, 2201, 2213, 2203, 2215, 2214, 2211,
3639 
3640      2213, 2218, 2254, 2209, 2203,    0, 2206, 2206, 2208, 2209,
3641      2212, 2216, 2219, 2211, 2217, 2210, 2218, 2212, 2214, 2216,
3642      2217, 2220, 2213, 2215, 2215, 2221, 2223, 2219, 2218, 2222,
3643      2222, 2224, 2226, 2220, 2254,    0, 2226, 2216, 2216, 2219,
3644      2221, 2217, 2225, 2224, 2223, 2230, 2216, 2225, 2220, 2230,
3645      2227, 2227, 2221, 2223, 2227, 2229, 2222, 2232, 2224, 2226,
3646      2233, 2231, 2229, 2234, 2236, 2235, 2237, 2227,    0, 2233,
3647      2234, 2240, 2230, 2237, 2225, 2227, 2231, 2227, 2227, 2239,
3648      2242, 2227, 2229, 2243, 2232,    0, 2236, 2233, 2231, 2235,
3649      2234, 2236, 2235, 2237, 2227, 2241, 2240, 2246, 2240, 2248,
3650 
3651      2249, 2239, 2242, 2243, 2241, 2250, 2239, 2242, 2248, 2251,
3652      2243, 2252, 2257, 2259, 2253, 2246, 2255, 2258, 2249, 2252,
3653      2250, 2253, 2241, 2255, 2246, 2261, 2248, 2249, 2260, 2260,
3654      2258, 2262, 2250, 2269, 2251, 2264, 2251, 2257, 2252, 2257,
3655      2259, 2253, 2265, 2255, 2258, 2266, 2268, 2261, 2270, 2271,
3656      2267, 2272, 2261, 2268, 2266, 2260, 2262, 2264, 2262, 2267,
3657      2276, 2274, 2264, 2271, 2265, 2269, 2272, 2278, 2276, 2265,
3658      2270, 2277, 2266, 2268, 2273, 2270, 2271, 2267, 2272, 2273,
3659      2274, 2279, 2278, 2280, 2277, 2281, 2283, 2276, 2274, 2284,
3660      2282, 2286, 2285, 2283, 2278, 2287, 2288, 2290, 2277, 2352,
3661 
3662         0, 2281, 2282, 2292, 2287, 2291, 2273, 2289, 2279, 2280,
3663      2280, 2293, 2281, 2283, 2285, 2289, 2286, 2282, 2286, 2285,
3664      2291, 2284, 2287, 2294, 2290, 2295, 2289, 2296, 2288, 2292,
3665      2292, 2352, 2291, 2298, 2289, 2304, 2296, 2293, 2293, 2300,
3666      2299, 2294, 2289, 2299, 2302, 2301, 2303, 2295, 2305, 2302,
3667      2294, 2301, 2295, 2304, 2296, 2307, 2298, 2309, 2299, 2308,
3668      2298, 2303, 2304, 2305, 2300, 2310, 2300, 2299, 2315, 2307,
3669      2299, 2312, 2301, 2303, 2308, 2305, 2302, 2313, 2320, 2309,
3670      2320, 2314, 2307, 2319, 2309, 2312, 2308, 2310, 2316, 2313,
3671      2321, 2317, 2310, 2318, 2319, 2315, 2313, 2316, 2312, 2314,
3672 
3673      2317, 2322, 2318, 2321, 2313, 2320, 2325, 2323, 2314, 2326,
3674      2319,    0, 2327, 2322, 2330, 2316, 2313, 2321, 2317, 2327,
3675      2318, 2325, 2328, 2329, 2326, 2334, 2331, 2336, 2322, 2323,
3676      2338, 2339, 2330, 2325, 2323, 2331, 2326, 2341, 2334, 2327,
3677      2339, 2330, 2338, 2337, 2328, 2329, 2334, 2337, 2336, 2328,
3678      2329, 2342, 2334, 2331, 2336, 2341, 2343, 2338, 2339, 2340,
3679      2344, 2340, 2345, 2348, 2341, 2334, 2349, 2346, 2347, 2351,
3680      2337, 2345, 2355, 2356, 2343, 2346, 2353, 2351, 2342, 2354,
3681      2349, 2353, 2357, 2343, 2354, 2348, 2340, 2344, 2359, 2345,
3682      2348, 2347, 2360, 2349, 2346, 2347, 2351, 2364, 2372, 2360,
3683 
3684      2365, 2363, 2366, 2353, 2355, 2356, 2357, 2359, 2367, 2357,
3685      2363, 2354, 2368, 2370, 2365, 2359, 2369, 2376,    0, 2360,
3686      2366, 2373, 2370, 2374, 2364, 2365, 2365, 2365, 2363, 2366,
3687      2372, 2369, 2375, 2373, 2377, 2367, 2378, 2380, 2368, 2368,
3688      2370, 2365, 2381, 2369, 2376, 2374, 2383, 2382, 2373, 2381,
3689      2374, 2388, 2365, 2383, 2386, 2385, 2377, 2385, 2375, 2375,
3690      2380, 2377, 2387, 2388, 2380, 2389, 2387, 2395, 2378, 2381,
3691      2382, 2390, 2391, 2383, 2382, 2393, 2386, 2392, 2388, 2397,
3692      2390, 2386, 2385, 2391, 2392, 2394, 2396, 2389, 2398, 2387,
3693      2394, 2397, 2389, 2402, 2395, 2403, 2399, 2393, 2390, 2391,
3694 
3695      2400, 2400, 2393, 2403, 2392, 2399, 2397, 2401, 2402, 2396,
3696      2398, 2404, 2394, 2396, 2405, 2398, 2401, 2406, 2407,    0,
3697      2402, 2409, 2403, 2399, 2410,    0, 2406, 2400, 2405, 2411,
3698      2416, 2412, 2410, 2404, 2401, 2415, 2416, 2411, 2404, 2412,
3699      2409, 2405, 2413, 2415, 2406, 2407, 2413, 2414, 2409, 2417,
3700      2414, 2410, 2419, 2418, 2420, 2422, 2411, 2416, 2412, 2418,
3701      2425, 2424, 2415,    0, 2417, 2427, 2429, 2422, 2426, 2413,
3702      2428, 2432, 2430, 2425, 2414, 2424, 2417, 2428, 2431, 2437,
3703      2418, 2436, 2422, 2434, 2419, 2432, 2420, 2425, 2424, 2426,
3704      2427, 2438, 2427, 2429, 2430, 2426, 2434, 2428, 2432, 2430,
3705 
3706      2433, 2435, 2431, 2433, 2439, 2431, 2437, 2436, 2436, 2440,
3707      2434, 2441, 2442,    0, 2443, 2435, 2438, 2443, 2438, 2445,
3708      2447, 2440, 2446, 2441, 2448,    0, 2442, 2433, 2435, 2450,
3709      2451, 2439, 2447, 2452, 2449, 2455, 2440, 2449, 2441, 2442,
3710      2443, 2443, 2455, 2454, 2443, 2458, 2445, 2447, 2446, 2446,
3711      2448, 2448, 2449, 2457, 2459, 2452, 2450, 2451, 2461, 2456,
3712      2452, 2449, 2455, 2460, 2449, 2454, 2456, 2462, 2457, 2463,
3713      2454, 2460, 2458, 2465, 2466, 2464, 2462, 2467, 2468, 2469,
3714      2457, 2459, 2470, 2471, 2472, 2461, 2456, 2464,    0, 2477,
3715      2460, 2468, 2476, 2471, 2462, 2465, 2463, 2469, 2479, 2473,
3716 
3717      2465, 2466, 2464, 2482, 2467, 2468, 2469, 2474, 2470, 2470,
3718      2471, 2472, 2473, 2478, 2476, 2474, 2477, 2481, 2480, 2476,
3719      2485, 2478, 2483, 2486, 2482, 2479, 2473, 2480, 2484, 2487,
3720      2482, 2486, 2488, 2493, 2474, 2492, 2490,    0,    0, 2481,
3721      2478, 2487,    0, 2484, 2481, 2480, 2483, 2485, 2490, 2483,
3722      2486, 2495, 2491, 2499, 2484, 2484, 2487, 2488, 2495, 2488,
3723      2491, 2496, 2492, 2490, 2497, 2493, 2500, 2501, 2497, 2498,
3724      2484, 2504,    0, 2496, 2503, 2501, 2499, 2502, 2495, 2491,
3725      2499, 2498, 2507, 2504, 2514, 2514, 2505, 2509, 2496,    0,
3726      2510, 2497, 2520, 2500, 2501, 2508, 2498, 2503, 2504, 2502,
3727 
3728      2505, 2503, 2508, 2510, 2502, 2515, 2511, 2509, 2513, 2507,
3729      2512, 2514, 2505, 2505, 2509, 2511, 2516, 2510,    0, 2512,
3730      2513, 2517, 2508, 2518, 2520,    0, 2521, 2505,    0, 2522,
3731      2523, 2515, 2515, 2511, 2516, 2513, 2524, 2512, 2518, 2529,
3732      2518, 2521, 2525, 2516, 2525, 2526, 2517, 2518, 2517, 2527,
3733      2518, 2522, 2523, 2521,    0, 2527, 2522, 2523, 2524, 2526,
3734      2528, 2529, 2532, 2524, 2533, 2518, 2529, 2518, 2534, 2525,
3735      2530, 2530, 2526, 2535, 2536, 2537, 2527, 2538, 2528, 2540,
3736         0, 2539,    0, 2538, 2532, 2535, 2533, 2528, 2541, 2532,
3737      2534, 2533, 2542, 2539, 2543, 2534, 2543, 2530, 2544, 2545,
3738 
3739      2535, 2554, 2546,    0, 2538, 2552, 2536, 2537, 2539, 2546,
3740      2541, 2540, 2544, 2547, 2542, 2541, 2548, 2549, 2550, 2542,
3741      2551, 2543, 2553, 2545, 2554, 2544, 2545,    0, 2554, 2546,
3742      2561, 2547, 2556, 2551, 2548, 2549, 2550, 2552, 2559, 2556,
3743      2547, 2558, 2563, 2548, 2549, 2550, 2560, 2551, 2558, 2562,
3744         0, 2564, 2565, 2570, 2553, 2571, 2559, 2562,    0, 2556,
3745      2563,    0, 2561,    0, 2566, 2559, 2566, 2571, 2558, 2563,
3746      2568, 2566, 2560, 2560, 2565, 2562, 2562, 2564, 2564, 2565,
3747      2570, 2568, 2571, 2569, 2562, 2572, 2573, 2575, 2576, 2577,
3748      2578, 2566,    0, 2566, 2569, 2580, 2581, 2568, 2584, 2576,
3749 
3750      2582, 2577, 2575, 2572, 2585, 2578, 2583, 2582, 2573, 2586,
3751      2569, 2588, 2572, 2573, 2575, 2576, 2577, 2578, 2581, 2580,
3752      2589, 2583, 2580, 2581, 2590, 2584, 2591, 2582, 2592, 2594,
3753      2593, 2585, 2595, 2583, 2597, 2586, 2586, 2596, 2588, 2598,
3754      2601, 2600, 2599, 2603, 2589, 2595, 2590, 2589, 2593, 2597,
3755      2599, 2590, 2598, 2605, 2606, 2607, 2594, 2593, 2591, 2595,
3756      2592, 2597, 2602, 2596, 2596, 2603, 2598, 2600, 2600, 2599,
3757      2603, 2608, 2601, 2609, 2610, 2602, 2605, 2612, 2606, 2611,
3758      2605, 2606, 2607, 2614, 2612, 2613,    0, 2617, 2615, 2602,
3759      3486, 3486, 2610, 2608, 2621, 2609, 2618, 2611, 2608, 2622,
3760 
3761      2609, 2610, 2615, 2618, 2612, 2624, 2611, 2621, 2613, 2617,
3762      2614, 2619, 2613, 2620, 2617, 2615, 2625, 2623, 2619, 3486,
3763      2620, 2621, 2622, 2618, 2623, 2626, 2622, 2624, 2627,    0,
3764      2628, 2630, 2624, 2629, 2634, 2631, 2636, 2632, 2619, 2630,
3765      2620, 2633, 2629, 2631, 2623, 2638, 2626, 2633, 2625, 2639,
3766      2640, 2636, 2626, 2642, 2627, 2627, 2628, 2628, 2630, 2632,
3767      2629, 2634, 2631, 2636, 2632, 2637, 2641, 2638, 2633, 2644,
3768      2646, 2647, 2638, 2648,    0, 2660, 2637, 2649, 2642, 2650,
3769      2642, 2639, 2640, 2646, 2647, 2641, 2652, 2644, 2654, 2662,
3770      2653, 2659, 2637, 2641, 2655, 2655, 2644, 2646, 2647, 2648,
3771 
3772      2648, 2649, 2653, 2656, 2649, 2650, 2650, 2660, 2661, 2663,
3773      2652, 2666, 2654, 2652, 2659, 2654, 2662, 2653, 2659, 2668,
3774      2670, 2655, 2674, 2661, 2675, 2675, 2671, 2663, 2668, 2656,
3775      2656, 2676, 2679, 2670, 2680, 2661, 2663, 2671, 2666, 2677,
3776      2676, 2681, 2683, 2685, 2674, 2677, 2668, 2670,    0, 2674,
3777      2686, 2675, 2687, 2671, 2679, 2696, 2680, 2686, 2676, 2679,
3778      2688, 2680, 2689, 2690, 2692, 2694, 2677, 2689, 2681, 2683,
3779      2693, 2688, 2692, 2695, 2701, 2685, 2705, 2686, 2687, 2687,
3780      2694, 2699, 2696, 2700, 2698, 2690, 2703, 2688, 2695, 2689,
3781      2690, 2692, 2694, 2702, 2693, 2698, 2707, 2693, 2703, 2699,
3782 
3783      2695, 2706, 2702, 2705, 2700, 2710, 2701, 2708, 2699, 2712,
3784      2700, 2698, 2713, 2703, 2710, 2708, 2709, 2709, 2714, 2716,
3785      2702, 2707, 2715, 2707, 2709, 2706, 2718, 2717, 2706, 2720,
3786      2719, 2715, 2710,    0, 2708, 2712, 2712, 2716, 2721, 2713,
3787      2714, 2717, 2720, 2709, 2709, 2714, 2716, 2722, 2718, 2715,
3788      2723, 2721, 2724, 2718, 2717, 2719, 2720, 2719, 2726, 2724,
3789      2725, 2727, 2722, 2728, 2729, 2721, 2730, 2725, 2731, 2732,
3790         0,    0, 2723, 2733, 2722, 2728,    0, 2723, 2736, 2724,
3791      2726, 2735, 2739, 2734, 2732, 2726, 2737, 2725, 2727, 2738,
3792      2728, 2729, 2734, 2730, 2740, 2731, 2732, 2739, 2733, 2741,
3793 
3794      2733, 2740, 2745, 2735, 2736, 2736, 2747, 2748, 2735, 2739,
3795      2734, 2742, 2737, 2737, 2741, 2738, 2738, 2743, 2742, 2744,
3796      2746, 2740, 2750, 2743, 2749, 2752, 2741, 2751, 2746, 2745,
3797      2744, 2755, 2754, 2747, 2748, 2753, 2756, 2758, 2742, 2754,
3798      2749, 2757, 2751, 2756, 2743, 2752, 2744, 2746, 2757, 2750,
3799      2753, 2749, 2752, 2755, 2751, 2759, 2760, 2763, 2755, 2754,
3800      2761, 2761, 2753, 2756, 2758, 2762, 2764, 2765, 2757, 2764,
3801      2766, 2763, 2762, 2759, 2767, 2766, 2768,    0, 2769,    0,
3802      2765, 2776, 2759, 2760, 2763,    0, 2771, 2761, 2770, 2782,
3803      2772, 2768, 2762, 2764, 2765, 2778, 2780, 2766, 2771, 2767,
3804 
3805      2774, 2767, 2772, 2768, 2769, 2769, 2770, 2775, 2776, 2774,
3806      2777, 2779, 2775, 2771, 2777, 2770, 2782, 2772, 2780, 2778,
3807      2781, 2783, 2778, 2780, 2779, 2784, 2790, 2774, 2787,    0,
3808      2789, 2792, 2793, 2791, 2775, 2790, 2795, 2777, 2779, 2792,
3809      2797, 2796, 2781, 2795, 2793, 2797, 2799, 2781, 2783, 2791,
3810      2796, 2784, 2784, 2790, 2787, 2787, 2789, 2789, 2792, 2793,
3811      2791, 2801, 2798, 2795, 2799, 2800, 2803, 2797, 2796, 2798,
3812      2802, 2804, 2800, 2799, 2805, 2803, 2807, 2802, 2808, 2810,
3813      2804, 2809,    0, 2812, 2810, 2815, 2801, 2816, 2801, 2798,
3814         0, 2811, 2800, 2803, 2809, 2814, 2816, 2802, 2804, 2807,
3815 
3816      2805, 2805, 2817, 2807, 2819, 2808, 2810, 2818, 2809, 2811,
3817      2812, 2817, 2815, 2814, 2816, 2820, 2818, 2821, 2811, 2822,
3818      2825, 2823, 2814, 2835, 2819, 2824, 2821, 2820, 2822, 2817,
3819      2826, 2819, 2823, 2824, 2818, 2827, 2828, 2831, 2829, 2833,
3820      2830, 2834, 2820, 2825, 2821, 2829, 2822, 2825, 2823, 2830,
3821      2826, 2836, 2824, 2841, 2842, 2835,    0, 2826, 2831, 2838,
3822      2836, 2837, 2827, 2828, 2831, 2829, 2833, 2830, 2834, 2839,
3823      2837, 2838, 2840, 2850, 2846, 2841, 2843, 2839, 2836, 2847,
3824      2841, 2842, 2844, 2843, 2845, 2840, 2838, 2848, 2837, 2844,
3825      2846, 2845, 2851, 2849, 2848, 2847, 2839, 2852, 2850, 2840,
3826 
3827      2850, 2846, 2853, 2843, 2855, 2857, 2847,    0, 2858, 2844,
3828      2859, 2845, 2855,    0, 2848, 2849, 2858, 2861, 2863, 2851,
3829      2849, 2860, 2852, 2857, 2852, 2859, 2862, 2864, 2860, 2853,
3830      2865, 2855, 2857, 2862, 2864, 2858, 2868, 2859, 2865, 2861,
3831      2863, 2869, 2870, 2868, 2861, 2863, 2871, 2872, 2860, 2873,
3832      2869, 2874, 2876, 2862, 2864, 2875,    0, 2865, 2873, 2872,
3833      2877,    0, 2882, 2868, 2876, 2879, 2870, 2881, 2869, 2870,
3834      2883, 2875, 2880, 2871, 2872, 2887, 2873, 2879, 2874, 2876,
3835      2892, 2884, 2875, 2877, 2880, 2882, 2886, 2877, 2881, 2882,
3836      2890, 2894, 2879, 2888, 2881, 2884, 2889, 2883, 2886, 2880,
3837 
3838      2888, 2895, 2887, 2891, 2889, 2897, 2894, 2892, 2884, 2890,
3839      2891, 2896, 2898, 2886, 2899, 2900,    0, 2890, 2894, 2895,
3840      2888, 2901, 2899, 2889, 2903, 2904, 2902, 2906, 2895, 2905,
3841      2891, 2897, 2897, 2912, 2896, 2903, 2905, 2915, 2896, 2898,
3842      2904, 2899, 2900, 2901, 2902, 2913, 2922, 2916, 2901, 2908,
3843      2919, 2903, 2904, 2902, 2906, 2908, 2905, 2914, 2953, 2912,
3844      2912, 2916, 2914, 2913, 2915, 2917, 2918, 2920, 2919, 2921,
3845      2924, 2923, 2913, 2922, 2916, 2926, 2908, 2919, 2923, 2917,
3846      2918, 2929, 2924, 2931, 2914, 2920, 2932, 2921, 2934, 2933,
3847      2953,    0, 2917, 2918, 2920, 2937, 2921, 2924, 2923, 2932,
3848 
3849      2936, 2935, 2926, 2929, 2941, 2931, 2944, 2934, 2929, 2935,
3850      2931, 2933, 2939, 2932, 2937, 2934, 2933, 2943, 2936, 2942,
3851      2945, 2946, 2937, 2948, 2939, 2949, 2941, 2936, 2935, 2943,
3852      2947, 2941, 2950, 2944, 2954,    0, 2956, 2959, 2947, 2939,
3853      2951, 2942, 2952, 2946, 2943, 2949, 2942, 2945, 2946, 2951,
3854      2948, 2952, 2949, 2957, 2950, 2958, 2954, 2947, 2960, 2950,
3855      2963, 2954, 2956, 2956, 2959, 2957, 2964, 2951, 2965, 2952,
3856      2966,    0, 2967, 2969, 2963, 2966, 2968, 2958, 2970, 2972,
3857      2957, 2971, 2958, 2977, 2974, 2960, 2969, 2963, 2978, 2973,
3858      2975, 2976, 2965, 2964, 2967, 2965, 2974, 2976, 2968, 2967,
3859 
3860      2969, 2972, 2966, 2968, 2971, 2979, 2972, 2973, 2971, 2975,
3861      2970, 2974, 2981, 2980, 2983, 2977, 2973, 2975, 2976,    0,
3862      2978, 2984, 2985, 2987,    0, 2989,    0, 2979, 2980, 2990,
3863      2993, 2991, 2979, 2992, 2983, 2996, 2994, 2995, 2987, 2981,
3864      2980, 2983, 2992, 2984, 2993, 2998, 2985, 2989, 2984, 2985,
3865      2987, 2990, 2989, 2991, 2994, 2995, 2990, 2993, 2991, 2997,
3866      2992, 2996, 2996, 2994, 2995, 2999, 3002, 3003, 2998, 3004,
3867      3007, 3010, 2998, 3008, 3009, 3002, 3011, 2997, 3007, 3010,
3868      3008, 3009, 3012, 3013,    0, 3017, 2997, 2999, 3015, 3016,
3869      3004, 3013, 2999, 3002, 3021, 3019, 3004, 3007, 3010, 3003,
3870 
3871      3008, 3009, 3012, 3011, 3030, 3018, 3015, 3016, 3020, 3012,
3872      3013, 3017, 3017, 3019, 3027, 3015, 3016, 3018, 3022, 3024,
3873      3020, 3021, 3019, 3026, 3028, 3029, 3022, 3029, 3031, 3033,
3874      3026, 3024, 3018, 3034, 3032, 3020, 3030, 3027, 3033, 3035,
3875      3036, 3027, 3032,    0, 3040, 3022, 3024, 3037, 3038, 3037,
3876      3026, 3028, 3029, 3043, 3041, 3044, 3033, 3045,    0, 3036,
3877      3031, 3032, 3040, 3046, 3047, 3034, 3035, 3036, 3041, 3048,
3878      3038, 3040, 3046, 3051, 3037, 3038, 3049, 3047, 3052, 3044,
3879      3045, 3041, 3044, 3054, 3045, 3043, 3056, 3052, 3049, 3055,
3880      3046, 3047, 3057, 3055, 3059, 3060, 3048, 3062, 3061, 3051,
3881 
3882      3051, 3064, 3066, 3049, 3067, 3052, 3069, 3072, 3068, 3066,
3883      3054, 3069, 3070, 3056, 3072, 3062, 3055, 3075, 3060, 3057,
3884      3061, 3059, 3060, 3068, 3062, 3061, 3067, 3070, 3064, 3066,
3885      3073, 3067, 3077, 3074, 3072, 3068, 3078, 3073, 3069, 3070,
3886      3074, 3079, 3080, 3075, 3075, 3084, 3085, 3081, 3082, 3087,
3887      3088,    0, 3089, 3090, 3092, 3085, 3087, 3073, 3091, 3077,
3888      3074, 3081, 3082, 3078, 3097, 3096, 3080, 3098, 3079, 3080,
3889      3091, 3095, 3084, 3085, 3081, 3082, 3087, 3088, 3089, 3089,
3890      3090, 3092, 3093, 3094, 3095, 3091, 3101, 3109, 3104, 3102,
3891      3098, 3097, 3094, 3104, 3098, 3105, 3093, 3096, 3095, 3105,
3892 
3893      3106, 3107, 3108, 3110, 3112, 3110, 3117, 3106, 3107, 3093,
3894      3094, 3102, 3111, 3118, 3115, 3120, 3102, 3120, 3101, 3109,
3895      3104, 3121, 3105, 3108, 3122, 3117,    0, 3106, 3107, 3108,
3896      3110, 3112, 3124, 3117, 3128, 3111, 3115, 3118, 3125, 3111,
3897      3118, 3115, 3120, 3123, 3123, 3121, 3210, 3125, 3121, 3126,
3898      3122, 3122, 3135, 3123, 3124, 3127, 3126, 3135, 3132, 3124,
3899      3129, 3128, 3131,    0, 3130, 3125, 3132, 3133, 3127, 3136,
3900      3123, 3123, 3130, 3129, 3136, 3131, 3126, 3138, 3210, 3139,
3901         0, 3140, 3127, 3141, 3135, 3132, 3133, 3129, 3130, 3131,
3902      3137, 3130, 3142, 3145, 3133, 3143, 3146,    0, 3137, 3130,
3903 
3904      3144, 3136,    0, 3146, 3138, 3139, 3139, 3140, 3140, 3141,
3905      3141, 3144, 3147, 3147, 3148, 3145, 3149, 3137, 3142, 3142,
3906      3145, 3143, 3143, 3146, 3150, 3151, 3152, 3144, 3154, 3149,
3907      3155, 3153, 3148, 3151, 3158, 3154, 3159, 3155, 3156, 3147,
3908      3160, 3148, 3161, 3149, 3162, 3156, 3150, 3163, 3152, 3153,
3909      3164, 3150, 3151, 3152, 3161, 3154, 3167, 3155, 3153, 3168,
3910      3169, 3158, 3170, 3159, 3160, 3156, 3165, 3160, 3163, 3161,
3911      3172, 3162, 3164, 3173, 3163, 3165, 3174, 3164, 3175, 3168,
3912      3176, 3177, 3180, 3167, 3170, 3181, 3168, 3169, 3182, 3170,
3913      3185, 3173, 3179, 3165, 3174, 3183, 3184, 3172, 3176, 3177,
3914 
3915      3173, 3179, 3186, 3174, 3184, 3175, 3185, 3176, 3177, 3180,
3916      3190, 3182, 3181, 3183, 3186, 3182, 3188, 3185, 3187, 3179,
3917      3191, 3188, 3183, 3184, 3190, 3187, 3192, 3194, 3198, 3186,
3918      3199, 3200, 3202, 3203, 3204, 3207, 3204, 3190, 3191, 3194,
3919      3208, 3211, 3205, 3220, 3200, 3187, 3203, 3191, 3188, 3192,
3920      3198, 3205, 3209, 3192, 3194, 3198, 3211, 3199, 3200, 3202,
3921      3203, 3204, 3207, 3215, 3216, 3215, 3217, 3208, 3211, 3205,
3922      3209, 3219, 3222, 3226, 3224, 3220,    0, 3236, 3219, 3209,
3923      3224, 3227,    0, 3228, 3217, 3231, 3216, 3222, 3229, 3233,
3924      3215, 3216, 3237, 3217, 3238, 3226,    0, 3232, 3219, 3222,
3925 
3926      3226, 3224, 3233, 3227, 3236, 3239, 3229, 3231, 3227, 3228,
3927      3228, 3232, 3231,    0, 3234, 3229, 3233, 3234, 3240, 3237,
3928      3241, 3238, 3244, 3239, 3232, 3240, 3242,    0, 3241, 3245,
3929      3246, 3247, 3239, 3248, 3249, 3253, 3254, 3250, 3254, 3255,
3930      3234, 3234, 3248, 3250, 3234, 3240, 3251, 3241, 3242, 3249,
3931      3252, 3245, 3246, 3242, 3244, 3257, 3245, 3246, 3247, 3252,
3932      3248, 3249, 3258, 3254, 3250, 3259, 3255, 3253, 3251, 3260,
3933      3267, 3261,    0, 3251, 3262, 3273, 3263, 3252, 3257, 3261,
3934      3269, 3272, 3257, 3265, 3258, 3270, 3262, 3259, 3263, 3258,
3935      3265, 3271, 3259, 3273, 3269, 3260, 3260, 3267, 3261, 3270,
3936 
3937      3274, 3262, 3273, 3263, 3272, 3271, 3275, 3269, 3272, 3276,
3938      3265, 3274, 3270, 3277, 3275, 3278, 3279, 3282, 3271, 3280,
3939      3281, 3284, 3278, 3279, 3283, 3283, 3282, 3274, 3276, 3285,
3940      3293, 3286, 3289, 3275, 3292, 3277, 3276, 3289, 3281, 3286,
3941      3277, 3290, 3278, 3279, 3282, 3280, 3280, 3281, 3284, 3294,
3942      3298, 3283, 3300, 3296, 3290, 3292, 3285, 3293, 3286, 3296,
3943      3301, 3292, 3303, 3300, 3289, 3308, 3305, 3304, 3290, 3312,
3944      3311, 3301, 3310, 3312, 3309,    0, 3294, 3298, 3304, 3300,
3945      3296, 3309, 3313, 3314, 3303, 3316, 3320, 3301, 3305, 3303,
3946      3310, 3314, 3308, 3305, 3304, 3317, 3312, 3318, 3319, 3310,
3947 
3948      3322, 3309, 3311, 3325, 3326, 3318, 3331, 3319, 3317, 3313,
3949      3314, 3316, 3316, 3320, 3324, 3329, 3330, 3330, 3332, 3335,
3950      3329, 3324, 3317, 3334, 3318, 3319, 3326, 3333, 3336, 3337,
3951      3334, 3326, 3322, 3331, 3339, 3325, 3343, 3341, 3335, 3333,
3952      3340, 3324, 3329, 3330, 3336, 3332, 3335, 3337, 3340, 3344,
3953      3334, 3338, 3341, 3342, 3333, 3336, 3337, 3345, 3338, 3346,
3954      3342, 3344, 3347, 3343, 3341, 3335, 3339, 3340, 3352, 3353,
3955      3351, 3354, 3355, 3356,    0, 3352, 3344, 3360, 3338, 3362,
3956      3342, 3345, 3357, 3346, 3345, 3351, 3346, 3362, 3347, 3347,
3957      3359, 3357, 3361, 3363, 3365, 3352, 3355, 3351, 3354, 3355,
3958 
3959      3367, 3353, 3371, 3376, 3360, 3356, 3362, 3368, 3374, 3357,
3960      3364, 3364, 3359, 3377, 3361, 3367, 3368, 3359, 3370, 3361,
3961      3364, 3365, 3369, 3372, 3369, 3363, 3374, 3367, 3373, 3371,
3962      3376, 3372, 3370, 3378, 3368, 3374, 3379, 3364, 3364, 3373,
3963      3377, 3380, 3381, 3382, 3383, 3370, 3384, 3385, 3386, 3369,
3964      3372, 3393, 3387, 3389, 3380, 3373, 3388, 3388, 3379, 3390,
3965      3378, 3394, 3396, 3379, 3381, 3385, 3387, 3397, 3380, 3381,
3966      3382, 3383, 3394, 3384, 3385, 3386, 3400, 3402, 3393, 3387,
3967      3406, 3390, 3402, 3388, 3400, 3389, 3390, 3403, 3394, 3396,
3968      3404, 3405, 3403, 3408, 3397, 3411, 3405, 3410, 3404, 3409,
3969 
3970      3409, 3414, 3413, 3400, 3402, 3410, 3406, 3406, 3411, 3413,
3971      3415, 3416, 3417, 3420, 3403, 3427, 3419, 3404, 3405, 3414,
3972      3408, 3427, 3411, 3421, 3410, 3419, 3409, 3423, 3414, 3413,
3973      3421, 3424, 3422, 3428, 3430, 3417,    0, 3415, 3416, 3417,
3974      3422, 3431, 3427, 3419, 3432, 3420, 3433, 3434, 3435, 3423,
3975      3421,    0, 3436, 3424, 3423, 3437,    0, 3432, 3424, 3422,
3976      3428, 3430, 3434, 3431, 3439, 3441, 3440, 3435, 3431, 3442,
3977      3444, 3432, 3441, 3443, 3434, 3435, 3442, 3437, 3433, 3436,
3978      3445, 3448, 3437, 3447, 3455, 3444, 3460, 3439, 3440, 3448,
3979      3455, 3439, 3441, 3440, 3452, 3443, 3442, 3444, 3449, 3450,
3980 
3981      3443, 3445, 3447, 3452, 3453, 3449, 3450, 3445, 3448,    0,
3982      3447, 3455, 3454, 3454, 3456, 3453, 3458, 3459, 3460, 3465,
3983      3461, 3452, 3454, 3463, 3459, 3449, 3450, 3464, 3469, 3470,
3984      3463, 3453, 3477, 3465, 3471, 3480, 3456, 3475, 3458, 3454,
3985      3454, 3456, 3461, 3458, 3459, 3478, 3465, 3461, 3485, 3475,
3986      3463, 3464, 3479, 3482, 3464, 3469, 3470, 3471, 3488, 3477,
3987      3479, 3471, 3480, 3490, 3475, 3482, 3492, 3478, 3487, 3487,
3988      3489, 3489, 3478, 3493, 3494, 3485, 3496, 3499, 3495, 3479,
3989      3482, 3500, 3504,    0,    0, 3488, 3490, 3495, 3492, 3496,
3990      3490, 3493, 3503, 3492, 3509, 3501, 3509, 3487, 3510, 3489,
3991 
3992      3493, 3494, 3501, 3496, 3499, 3495, 3502, 3500, 3500, 3504,
3993      3506, 3505, 3511, 3502, 3503, 3513, 3512, 3506, 3510, 3503,
3994      3505, 3509, 3501, 3515, 3516, 3510, 3517, 3513, 3519, 3518,
3995      3520, 3521, 3515, 3502, 3512, 3511, 3522, 3506, 3505, 3511,
3996      3523, 3524, 3513, 3512, 3524, 3526, 3516, 3518, 3522, 3528,
3997      3515, 3516, 3530, 3517, 3519, 3519, 3518, 3520, 3521, 3524,
3998      3525, 3528, 3523, 3522, 3527, 3525, 3527, 3523, 3524, 3529,
3999      3532, 3524, 3531, 3533, 3530, 3529, 3528, 3526, 3532, 3530,
4000      3534, 3535, 3536, 3537, 3539,    0, 3538, 3542, 3543, 3545,
4001      3550, 3527, 3525, 3551, 3531, 3548, 3529, 3532, 3538, 3531,
4002 
4003      3533, 3543, 3535, 3546, 3548, 3552, 3539, 3553, 3535, 3536,
4004      3537, 3539, 3534, 3538, 3542, 3543, 3545, 3550, 3555, 3556,
4005      3551, 3546, 3548, 3557, 3558, 3559, 3559, 3562, 3564, 3561,
4006      3546, 3565, 3552, 3566, 3553, 3567, 3570, 3572,    0,    0,
4007      3577, 3569, 3567, 3576,    0, 3555, 3556, 3561, 3566, 3565,
4008      3557, 3558, 3559, 3569, 3562, 3564, 3561, 3571, 3565, 3573,
4009      3566, 3574, 3567, 3570, 3572, 3571, 3575, 3577, 3569, 3576,
4010      3576, 3573, 3580, 3579, 3583, 3574, 3585, 3585, 3584,    0,
4011      3586, 3575, 3587, 3583, 3571, 3579, 3573, 3589, 3574, 3590,
4012      3592, 3587,    0, 3575,    0, 3591, 3593,    0, 3598, 3580,
4013 
4014      3579, 3583, 3584, 3585, 3593, 3584, 3586, 3586, 3591, 3587,
4015      3594, 3589, 3592, 3595, 3589, 3597, 3598, 3592, 3601, 3594,
4016      3602, 3590, 3591, 3593, 3595, 3598, 3604, 3606, 3606, 3616,
4017         0, 3607, 3602, 3617, 3620, 3621, 3597, 3594, 3607, 3622,
4018      3595, 3601, 3597, 3623, 3625, 3601, 3627, 3602, 3620, 3628,
4019      3627, 3616, 3604, 3604, 3606, 3629, 3616, 3617, 3607, 3634,
4020      3617, 3620, 3621, 3634, 3632, 3630, 3622, 3628, 3635,    0,
4021      3623, 3625, 3630, 3627, 3636, 3637, 3628, 3632, 3629, 3639,
4022      3640, 3638, 3629, 3644, 3635, 3644, 3634, 3643,    0, 3641,
4023      3642, 3632, 3630, 3638, 3640, 3635, 3636, 3641, 3643, 3642,
4024 
4025      3637, 3636, 3637, 3645, 3646, 3639, 3639, 3640, 3638, 3647,
4026      3644, 3648, 3649, 3650, 3643, 3645, 3641, 3642, 3649, 3651,
4027      3653, 3652, 3646, 3655, 3647, 3654, 3662, 3661, 3650, 3652,
4028      3645, 3646, 3654, 3648, 3661, 3664, 3647, 3665, 3648, 3649,
4029      3650, 3651, 3660, 3663, 3666, 3655, 3651, 3653, 3652, 3667,
4030      3655, 3668, 3654, 3662, 3661, 3660, 3670, 3671, 3669, 3668,
4031      3672, 3663, 3664, 3665, 3665, 3669, 3673, 3675, 3673, 3660,
4032      3663, 3666,    0, 3678, 3674, 3676, 3667, 3677, 3668, 3671,
4033      3670, 3679, 3672, 3670, 3671, 3669, 3674, 3672, 3676, 3680,
4034      3681, 3682, 3677, 3673, 3683, 3678, 3680, 3685, 3686, 3675,
4035 
4036      3678, 3674, 3676, 3687, 3677, 3688, 3692, 3690, 3679, 3695,
4037      3686, 3687, 3696, 3699, 3700, 3692, 3680, 3681, 3682, 3690,
4038      3698, 3683, 3697, 3702, 3685, 3686, 3704, 3701, 3698, 3705,
4039      3687, 3707, 3688, 3692, 3690, 3703, 3695, 3702, 3696, 3696,
4040      3701, 3697, 3715, 3703, 3716, 3699, 3700, 3698, 3704, 3697,
4041      3702, 3712, 3713, 3704, 3701, 3715, 3705, 3712, 3707, 3713,
4042      3719, 3718, 3703, 3721, 3720, 3723, 3722, 3716, 3718, 3715,
4043         0, 3716, 3720, 3723, 3724, 3725, 3726, 3721, 3712, 3713,
4044      3722, 3731, 3719, 3732, 3733, 3730, 3734, 3719, 3718, 3731,
4045      3721, 3720, 3723, 3722, 3730, 3735, 3724, 3725, 3729,    0,
4046 
4047      3740, 3724, 3725, 3726, 3736, 3729, 3733, 3737, 3731, 3739,
4048      3732, 3733, 3730, 3738, 3742, 3743, 3744, 3739, 3734,    0,
4049      3747, 3735, 3735, 3746, 3748, 3729, 3736, 3751, 3747, 3737,
4050      3749, 3736, 3740, 3757, 3737, 3738, 3739, 3743, 3749, 3755,
4051      3738, 3742, 3743, 3744, 3748, 3750, 3746, 3747, 3752, 3753,
4052      3746, 3748, 3758, 3750, 3760, 3758, 3752, 3749, 3759, 3751,
4053      3757, 3761, 3760, 3753, 3762, 3755, 3755, 3763, 3764, 3761,
4054      3758, 3768, 3750, 3765,    0, 3752, 3753,    0, 3762, 3758,
4055      3759, 3760, 3758, 3767, 3767, 3759, 3770, 3765, 3761, 3771,
4056      3764, 3762, 3772, 3763, 3763, 3764, 3769, 3768, 3768, 3774,
4057 
4058      3765, 3773, 3775, 3776, 3769, 3778, 3777, 3774,    0, 3785,
4059      3767,    0, 3770, 3770, 3772, 3771, 3771, 3779, 3780, 3772,
4060      3782, 3773,    0, 3769, 3788, 3776, 3774, 3781, 3773, 3775,
4061      3776, 3777, 3778, 3777, 3789, 3781, 3785, 3779, 3780, 3792,
4062      3783, 3786, 3782, 3794, 3779, 3780, 3788, 3782, 3783, 3786,
4063      3790, 3788, 3791, 3798, 3781, 3795, 3789, 3797, 3790, 3801,
4064      3791, 3789,    0, 3795, 3796, 3792, 3792, 3783, 3786, 3799,
4065      3794, 3802, 3796, 3803, 3811, 3805,    0, 3790, 3812, 3791,
4066      3798, 3808, 3795, 3797, 3797,    0, 3801, 3809,    0, 3799,
4067         0, 3796,    0, 3803,    0, 3809, 3799, 3805, 3802, 3810,
4068 
4069      3803, 3811, 3805, 3808,    0, 3812,    0, 3810, 3808,    0,
4070         0,    0,    0,    0, 3809,    0,    0,    0,    0,    0,
4071         0,    0,    0,    0,    0,    0, 3810, 3816, 3816, 3816,
4072      3816, 3816, 3816, 3816, 3817, 3817, 3817, 3817, 3817, 3817,
4073      3817, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3819, 3819,
4074      3819, 3819, 3819, 3819, 3819, 3820, 3820, 3820, 3820, 3820,
4075      3820, 3820, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3822,
4076      3822, 3822, 3822, 3822, 3822, 3822, 3824, 3824,    0, 3824,
4077      3824, 3824, 3824, 3825, 3825,    0,    0,    0, 3825, 3825,
4078      3826, 3826,    0,    0, 3826,    0, 3826, 3827,    0,    0,
4079 
4080         0,    0,    0, 3827, 3828, 3828,    0,    0,    0, 3828,
4081      3828, 3829,    0,    0,    0,    0,    0, 3829, 3830, 3830,
4082         0, 3830, 3830, 3830, 3830, 3831,    0,    0,    0,    0,
4083         0, 3831, 3832, 3832,    0,    0,    0, 3832, 3832, 3833,
4084      3833,    0, 3833, 3833, 3833, 3833, 3815, 3815, 3815, 3815,
4085      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
4086      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
4087      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
4088      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
4089      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
4090 
4091      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
4092      3815, 3815, 3815
4093     } ;
4094 
4095 static yy_state_type yy_last_accepting_state;
4096 static char *yy_last_accepting_cpos;
4097 
4098 extern int yy_flex_debug;
4099 int yy_flex_debug = 0;
4100 
4101 /* The intent behind this definition is that it'll catch
4102  * any uses of REJECT which flex missed.
4103  */
4104 #define REJECT reject_used_but_not_detected
4105 static int yy_more_flag = 0;
4106 static int yy_more_len = 0;
4107 #define yymore() ((yy_more_flag) = 1)
4108 #define YY_MORE_ADJ (yy_more_len)
4109 #define YY_RESTORE_YY_MORE_OFFSET
4110 char *yytext;
4111 #line 1 "util/configlexer.lex"
4112 #line 2 "util/configlexer.lex"
4113 /*
4114  * configlexer.lex - lexical analyzer for unbound config file
4115  *
4116  * Copyright (c) 2001-2006, NLnet Labs. All rights reserved
4117  *
4118  * See LICENSE for the license.
4119  *
4120  */
4121 
4122 /* because flex keeps having sign-unsigned compare problems that are unfixed*/
4123 #if defined(__clang__)||(defined(__GNUC__)&&((__GNUC__ >4)||(defined(__GNUC_MINOR__)&&(__GNUC__ ==4)&&(__GNUC_MINOR__ >=2))))
4124 #pragma GCC diagnostic ignored "-Wsign-compare"
4125 #endif
4126 
4127 #include <ctype.h>
4128 #include <strings.h>
4129 #ifdef HAVE_GLOB_H
4130 # include <glob.h>
4131 #endif
4132 
4133 #include "util/config_file.h"
4134 #include "util/configparser.h"
4135 void ub_c_error(const char *message);
4136 
4137 #if 0
4138 #define LEXOUT(s)  printf s /* used ONLY when debugging */
4139 #else
4140 #define LEXOUT(s)
4141 #endif
4142 
4143 /** avoid warning in about fwrite return value */
4144 #define ECHO ub_c_error_msg("syntax error at text: %s", yytext)
4145 
4146 /** A parser variable, this is a statement in the config file which is
4147  * of the form variable: value1 value2 ...  nargs is the number of values. */
4148 #define YDVAR(nargs, var) \
4149 	num_args=(nargs); \
4150 	LEXOUT(("v(%s%d) ", yytext, num_args)); \
4151 	if(num_args > 0) { BEGIN(val); } \
4152 	return (var);
4153 
4154 struct inc_state {
4155 	char* filename;
4156 	int line;
4157 	YY_BUFFER_STATE buffer;
4158 	struct inc_state* next;
4159 	int inc_toplevel;
4160 };
4161 static struct inc_state* config_include_stack = NULL;
4162 static int inc_depth = 0;
4163 static int inc_prev = 0;
4164 static int num_args = 0;
4165 static int inc_toplevel = 0;
4166 
init_cfg_parse(void)4167 void init_cfg_parse(void)
4168 {
4169 	config_include_stack = NULL;
4170 	inc_depth = 0;
4171 	inc_prev = 0;
4172 	num_args = 0;
4173 	inc_toplevel = 0;
4174 }
4175 
config_start_include(const char * filename,int toplevel)4176 static void config_start_include(const char* filename, int toplevel)
4177 {
4178 	FILE *input;
4179 	struct inc_state* s;
4180 	char* nm;
4181 	if(inc_depth+1 > 100000) {
4182 		ub_c_error_msg("too many include files");
4183 		return;
4184 	}
4185 	if(*filename == '\0') {
4186 		ub_c_error_msg("empty include file name");
4187 		return;
4188 	}
4189 	s = (struct inc_state*)malloc(sizeof(*s));
4190 	if(!s) {
4191 		ub_c_error_msg("include %s: malloc failure", filename);
4192 		return;
4193 	}
4194 	if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot,
4195 		strlen(cfg_parser->chroot)) == 0) {
4196 		filename += strlen(cfg_parser->chroot);
4197 	}
4198 	nm = strdup(filename);
4199 	if(!nm) {
4200 		ub_c_error_msg("include %s: strdup failure", filename);
4201 		free(s);
4202 		return;
4203 	}
4204 	input = fopen(filename, "r");
4205 	if(!input) {
4206 		ub_c_error_msg("cannot open include file '%s': %s",
4207 			filename, strerror(errno));
4208 		free(s);
4209 		free(nm);
4210 		return;
4211 	}
4212 	LEXOUT(("switch_to_include_file(%s)\n", filename));
4213 	inc_depth++;
4214 	s->filename = cfg_parser->filename;
4215 	s->line = cfg_parser->line;
4216 	s->buffer = YY_CURRENT_BUFFER;
4217 	s->inc_toplevel = inc_toplevel;
4218 	s->next = config_include_stack;
4219 	config_include_stack = s;
4220 	cfg_parser->filename = nm;
4221 	cfg_parser->line = 1;
4222 	inc_toplevel = toplevel;
4223 	yy_switch_to_buffer(yy_create_buffer(input, YY_BUF_SIZE));
4224 }
4225 
config_start_include_glob(const char * filename,int toplevel)4226 static void config_start_include_glob(const char* filename, int toplevel)
4227 {
4228 
4229 	/* check for wildcards */
4230 #ifdef HAVE_GLOB
4231 	glob_t g;
4232 	int i, r, flags;
4233 	if(!(!strchr(filename, '*') && !strchr(filename, '?') && !strchr(filename, '[') &&
4234 		!strchr(filename, '{') && !strchr(filename, '~'))) {
4235 		flags = 0
4236 #ifdef GLOB_ERR
4237 			| GLOB_ERR
4238 #endif
4239 			 /* do not set GLOB_NOSORT so the results are sorted
4240 			    and in a predictable order. */
4241 #ifdef GLOB_BRACE
4242 			| GLOB_BRACE
4243 #endif
4244 #ifdef GLOB_TILDE
4245 			| GLOB_TILDE
4246 #endif
4247 		;
4248 		memset(&g, 0, sizeof(g));
4249 		if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot,
4250 			strlen(cfg_parser->chroot)) == 0) {
4251 			filename += strlen(cfg_parser->chroot);
4252 		}
4253 		r = glob(filename, flags, NULL, &g);
4254 		if(r) {
4255 			/* some error */
4256 			globfree(&g);
4257 			if(r == GLOB_NOMATCH)
4258 				return; /* no matches for pattern */
4259 			config_start_include(filename, toplevel); /* let original deal with it */
4260 			return;
4261 		}
4262 		/* process files found, if any */
4263 		for(i=(int)g.gl_pathc-1; i>=0; i--) {
4264 			config_start_include(g.gl_pathv[i], toplevel);
4265 		}
4266 		globfree(&g);
4267 		return;
4268 	}
4269 #endif /* HAVE_GLOB */
4270 
4271 	config_start_include(filename, toplevel);
4272 }
4273 
config_end_include(void)4274 static void config_end_include(void)
4275 {
4276 	struct inc_state* s = config_include_stack;
4277 	--inc_depth;
4278 	if(!s) return;
4279 	free(cfg_parser->filename);
4280 	cfg_parser->filename = s->filename;
4281 	cfg_parser->line = s->line;
4282 	yy_delete_buffer(YY_CURRENT_BUFFER);
4283 	yy_switch_to_buffer(s->buffer);
4284 	config_include_stack = s->next;
4285 	inc_toplevel = s->inc_toplevel;
4286 	free(s);
4287 }
4288 
4289 #ifndef yy_set_bol /* compat definition, for flex 2.4.6 */
4290 #define yy_set_bol(at_bol) \
4291         { \
4292 	        if ( ! yy_current_buffer ) \
4293 	                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
4294 	        yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \
4295         }
4296 #endif
4297 
4298 #line 4296 "<stdout>"
4299 #define YY_NO_INPUT 1
4300 #line 191 "util/configlexer.lex"
4301 #ifndef YY_NO_UNPUT
4302 #define YY_NO_UNPUT 1
4303 #endif
4304 #ifndef YY_NO_INPUT
4305 #define YY_NO_INPUT 1
4306 #endif
4307 #line 4305 "<stdout>"
4308 
4309 #line 4307 "<stdout>"
4310 
4311 #define INITIAL 0
4312 #define quotedstring 1
4313 #define singlequotedstr 2
4314 #define include 3
4315 #define include_quoted 4
4316 #define val 5
4317 #define include_toplevel 6
4318 #define include_toplevel_quoted 7
4319 
4320 #ifndef YY_NO_UNISTD_H
4321 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4322  * down here because we want the user's section 1 to have been scanned first.
4323  * The user has a chance to override it with an option.
4324  */
4325 #include <unistd.h>
4326 #endif
4327 
4328 #ifndef YY_EXTRA_TYPE
4329 #define YY_EXTRA_TYPE void *
4330 #endif
4331 
4332 static int yy_init_globals ( void );
4333 
4334 /* Accessor methods to globals.
4335    These are made visible to non-reentrant scanners for convenience. */
4336 
4337 int yylex_destroy ( void );
4338 
4339 int yyget_debug ( void );
4340 
4341 void yyset_debug ( int debug_flag  );
4342 
4343 YY_EXTRA_TYPE yyget_extra ( void );
4344 
4345 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
4346 
4347 FILE *yyget_in ( void );
4348 
4349 void yyset_in  ( FILE * _in_str  );
4350 
4351 FILE *yyget_out ( void );
4352 
4353 void yyset_out  ( FILE * _out_str  );
4354 
4355 			int yyget_leng ( void );
4356 
4357 char *yyget_text ( void );
4358 
4359 int yyget_lineno ( void );
4360 
4361 void yyset_lineno ( int _line_number  );
4362 
4363 /* Macros after this point can all be overridden by user definitions in
4364  * section 1.
4365  */
4366 
4367 #ifndef YY_SKIP_YYWRAP
4368 #ifdef __cplusplus
4369 extern "C" int yywrap ( void );
4370 #else
4371 extern int yywrap ( void );
4372 #endif
4373 #endif
4374 
4375 #ifndef YY_NO_UNPUT
4376 
4377 #endif
4378 
4379 #ifndef yytext_ptr
4380 static void yy_flex_strncpy ( char *, const char *, int );
4381 #endif
4382 
4383 #ifdef YY_NEED_STRLEN
4384 static int yy_flex_strlen ( const char * );
4385 #endif
4386 
4387 #ifndef YY_NO_INPUT
4388 #ifdef __cplusplus
4389 static int yyinput ( void );
4390 #else
4391 static int input ( void );
4392 #endif
4393 
4394 #endif
4395 
4396 /* Amount of stuff to slurp up with each read. */
4397 #ifndef YY_READ_BUF_SIZE
4398 #ifdef __ia64__
4399 /* On IA-64, the buffer size is 16k, not 8k */
4400 #define YY_READ_BUF_SIZE 16384
4401 #else
4402 #define YY_READ_BUF_SIZE 8192
4403 #endif /* __ia64__ */
4404 #endif
4405 
4406 /* Copy whatever the last rule matched to the standard output. */
4407 #ifndef ECHO
4408 /* This used to be an fputs(), but since the string might contain NUL's,
4409  * we now use fwrite().
4410  */
4411 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
4412 #endif
4413 
4414 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4415  * is returned in "result".
4416  */
4417 #ifndef YY_INPUT
4418 #define YY_INPUT(buf,result,max_size) \
4419 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4420 		{ \
4421 		int c = '*'; \
4422 		int n; \
4423 		for ( n = 0; n < max_size && \
4424 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
4425 			buf[n] = (char) c; \
4426 		if ( c == '\n' ) \
4427 			buf[n++] = (char) c; \
4428 		if ( c == EOF && ferror( yyin ) ) \
4429 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
4430 		result = n; \
4431 		} \
4432 	else \
4433 		{ \
4434 		errno=0; \
4435 		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
4436 			{ \
4437 			if( errno != EINTR) \
4438 				{ \
4439 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
4440 				break; \
4441 				} \
4442 			errno=0; \
4443 			clearerr(yyin); \
4444 			} \
4445 		}\
4446 \
4447 
4448 #endif
4449 
4450 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4451  * we don't want an extra ';' after the "return" because that will cause
4452  * some compilers to complain about unreachable statements.
4453  */
4454 #ifndef yyterminate
4455 #define yyterminate() return YY_NULL
4456 #endif
4457 
4458 /* Number of entries by which start-condition stack grows. */
4459 #ifndef YY_START_STACK_INCR
4460 #define YY_START_STACK_INCR 25
4461 #endif
4462 
4463 /* Report a fatal error. */
4464 #ifndef YY_FATAL_ERROR
4465 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4466 #endif
4467 
4468 /* end tables serialization structures and prototypes */
4469 
4470 /* Default declaration of generated scanner - a define so the user can
4471  * easily add parameters.
4472  */
4473 #ifndef YY_DECL
4474 #define YY_DECL_IS_OURS 1
4475 
4476 extern int yylex (void);
4477 
4478 #define YY_DECL int yylex (void)
4479 #endif /* !YY_DECL */
4480 
4481 /* Code executed at the beginning of each rule, after yytext and yyleng
4482  * have been set up.
4483  */
4484 #ifndef YY_USER_ACTION
4485 #define YY_USER_ACTION
4486 #endif
4487 
4488 /* Code executed at the end of each rule. */
4489 #ifndef YY_BREAK
4490 #define YY_BREAK /*LINTED*/break;
4491 #endif
4492 
4493 #define YY_RULE_SETUP \
4494 	YY_USER_ACTION
4495 
4496 /** The main scanner function which does all the work.
4497  */
4498 YY_DECL
4499 {
4500 	yy_state_type yy_current_state;
4501 	char *yy_cp, *yy_bp;
4502 	int yy_act;
4503 
4504 	if ( !(yy_init) )
4505 		{
4506 		(yy_init) = 1;
4507 
4508 #ifdef YY_USER_INIT
4509 		YY_USER_INIT;
4510 #endif
4511 
4512 		if ( ! (yy_start) )
4513 			(yy_start) = 1;	/* first start state */
4514 
4515 		if ( ! yyin )
4516 			yyin = stdin;
4517 
4518 		if ( ! yyout )
4519 			yyout = stdout;
4520 
4521 		if ( ! YY_CURRENT_BUFFER ) {
4522 			yyensure_buffer_stack ();
4523 			YY_CURRENT_BUFFER_LVALUE =
4524 				yy_create_buffer( yyin, YY_BUF_SIZE );
4525 		}
4526 
4527 		yy_load_buffer_state(  );
4528 		}
4529 
4530 	{
4531 #line 211 "util/configlexer.lex"
4532 
4533 #line 4531 "<stdout>"
4534 
4535 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
4536 		{
4537 		(yy_more_len) = 0;
4538 		if ( (yy_more_flag) )
4539 			{
4540 			(yy_more_len) = (int) ((yy_c_buf_p) - (yytext_ptr));
4541 			(yy_more_flag) = 0;
4542 			}
4543 		yy_cp = (yy_c_buf_p);
4544 
4545 		/* Support of yytext. */
4546 		*yy_cp = (yy_hold_char);
4547 
4548 		/* yy_bp points to the position in yy_ch_buf of the start of
4549 		 * the current run.
4550 		 */
4551 		yy_bp = yy_cp;
4552 
4553 		yy_current_state = (yy_start);
4554 yy_match:
4555 		do
4556 			{
4557 			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
4558 			if ( yy_accept[yy_current_state] )
4559 				{
4560 				(yy_last_accepting_state) = yy_current_state;
4561 				(yy_last_accepting_cpos) = yy_cp;
4562 				}
4563 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4564 				{
4565 				yy_current_state = (int) yy_def[yy_current_state];
4566 				if ( yy_current_state >= 3816 )
4567 					yy_c = yy_meta[yy_c];
4568 				}
4569 			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4570 			++yy_cp;
4571 			}
4572 		while ( yy_base[yy_current_state] != 10847 );
4573 
4574 yy_find_action:
4575 		yy_act = yy_accept[yy_current_state];
4576 		if ( yy_act == 0 )
4577 			{ /* have to back up */
4578 			yy_cp = (yy_last_accepting_cpos);
4579 			yy_current_state = (yy_last_accepting_state);
4580 			yy_act = yy_accept[yy_current_state];
4581 			}
4582 
4583 		YY_DO_BEFORE_ACTION;
4584 
4585 do_action:	/* This label is used only to access EOF actions. */
4586 
4587 		switch ( yy_act )
4588 	{ /* beginning of action switch */
4589 			case 0: /* must back up */
4590 			/* undo the effects of YY_DO_BEFORE_ACTION */
4591 			*yy_cp = (yy_hold_char);
4592 			yy_cp = (yy_last_accepting_cpos);
4593 			yy_current_state = (yy_last_accepting_state);
4594 			goto yy_find_action;
4595 
4596 case 1:
4597 YY_RULE_SETUP
4598 #line 212 "util/configlexer.lex"
4599 {
4600 	LEXOUT(("SP ")); /* ignore */ }
4601 	YY_BREAK
4602 case 2:
4603 YY_RULE_SETUP
4604 #line 214 "util/configlexer.lex"
4605 {
4606 	/* note that flex makes the longest match and '.' is any but not nl */
4607 	LEXOUT(("comment(%s) ", yytext)); /* ignore */ }
4608 	YY_BREAK
4609 case 3:
4610 YY_RULE_SETUP
4611 #line 217 "util/configlexer.lex"
4612 { YDVAR(0, VAR_SERVER) }
4613 	YY_BREAK
4614 case 4:
4615 YY_RULE_SETUP
4616 #line 218 "util/configlexer.lex"
4617 { YDVAR(1, VAR_QNAME_MINIMISATION) }
4618 	YY_BREAK
4619 case 5:
4620 YY_RULE_SETUP
4621 #line 219 "util/configlexer.lex"
4622 { YDVAR(1, VAR_QNAME_MINIMISATION_STRICT) }
4623 	YY_BREAK
4624 case 6:
4625 YY_RULE_SETUP
4626 #line 220 "util/configlexer.lex"
4627 { YDVAR(1, VAR_NUM_THREADS) }
4628 	YY_BREAK
4629 case 7:
4630 YY_RULE_SETUP
4631 #line 221 "util/configlexer.lex"
4632 { YDVAR(1, VAR_VERBOSITY) }
4633 	YY_BREAK
4634 case 8:
4635 YY_RULE_SETUP
4636 #line 222 "util/configlexer.lex"
4637 { YDVAR(1, VAR_PORT) }
4638 	YY_BREAK
4639 case 9:
4640 YY_RULE_SETUP
4641 #line 223 "util/configlexer.lex"
4642 { YDVAR(1, VAR_OUTGOING_RANGE) }
4643 	YY_BREAK
4644 case 10:
4645 YY_RULE_SETUP
4646 #line 224 "util/configlexer.lex"
4647 { YDVAR(1, VAR_OUTGOING_PORT_PERMIT) }
4648 	YY_BREAK
4649 case 11:
4650 YY_RULE_SETUP
4651 #line 225 "util/configlexer.lex"
4652 { YDVAR(1, VAR_OUTGOING_PORT_AVOID) }
4653 	YY_BREAK
4654 case 12:
4655 YY_RULE_SETUP
4656 #line 226 "util/configlexer.lex"
4657 { YDVAR(1, VAR_OUTGOING_NUM_TCP) }
4658 	YY_BREAK
4659 case 13:
4660 YY_RULE_SETUP
4661 #line 227 "util/configlexer.lex"
4662 { YDVAR(1, VAR_INCOMING_NUM_TCP) }
4663 	YY_BREAK
4664 case 14:
4665 YY_RULE_SETUP
4666 #line 228 "util/configlexer.lex"
4667 { YDVAR(1, VAR_DO_IP4) }
4668 	YY_BREAK
4669 case 15:
4670 YY_RULE_SETUP
4671 #line 229 "util/configlexer.lex"
4672 { YDVAR(1, VAR_DO_IP6) }
4673 	YY_BREAK
4674 case 16:
4675 YY_RULE_SETUP
4676 #line 230 "util/configlexer.lex"
4677 { YDVAR(1, VAR_DO_NAT64) }
4678 	YY_BREAK
4679 case 17:
4680 YY_RULE_SETUP
4681 #line 231 "util/configlexer.lex"
4682 { YDVAR(1, VAR_PREFER_IP4) }
4683 	YY_BREAK
4684 case 18:
4685 YY_RULE_SETUP
4686 #line 232 "util/configlexer.lex"
4687 { YDVAR(1, VAR_PREFER_IP6) }
4688 	YY_BREAK
4689 case 19:
4690 YY_RULE_SETUP
4691 #line 233 "util/configlexer.lex"
4692 { YDVAR(1, VAR_DO_UDP) }
4693 	YY_BREAK
4694 case 20:
4695 YY_RULE_SETUP
4696 #line 234 "util/configlexer.lex"
4697 { YDVAR(1, VAR_DO_TCP) }
4698 	YY_BREAK
4699 case 21:
4700 YY_RULE_SETUP
4701 #line 235 "util/configlexer.lex"
4702 { YDVAR(1, VAR_TCP_UPSTREAM) }
4703 	YY_BREAK
4704 case 22:
4705 YY_RULE_SETUP
4706 #line 236 "util/configlexer.lex"
4707 { YDVAR(1, VAR_TCP_MSS) }
4708 	YY_BREAK
4709 case 23:
4710 YY_RULE_SETUP
4711 #line 237 "util/configlexer.lex"
4712 { YDVAR(1, VAR_OUTGOING_TCP_MSS) }
4713 	YY_BREAK
4714 case 24:
4715 YY_RULE_SETUP
4716 #line 238 "util/configlexer.lex"
4717 { YDVAR(1, VAR_TCP_IDLE_TIMEOUT) }
4718 	YY_BREAK
4719 case 25:
4720 YY_RULE_SETUP
4721 #line 239 "util/configlexer.lex"
4722 { YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) }
4723 	YY_BREAK
4724 case 26:
4725 YY_RULE_SETUP
4726 #line 240 "util/configlexer.lex"
4727 { YDVAR(1, VAR_TCP_REUSE_TIMEOUT) }
4728 	YY_BREAK
4729 case 27:
4730 YY_RULE_SETUP
4731 #line 241 "util/configlexer.lex"
4732 { YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) }
4733 	YY_BREAK
4734 case 28:
4735 YY_RULE_SETUP
4736 #line 242 "util/configlexer.lex"
4737 { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) }
4738 	YY_BREAK
4739 case 29:
4740 YY_RULE_SETUP
4741 #line 243 "util/configlexer.lex"
4742 { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) }
4743 	YY_BREAK
4744 case 30:
4745 YY_RULE_SETUP
4746 #line 244 "util/configlexer.lex"
4747 { YDVAR(1, VAR_SOCK_QUEUE_TIMEOUT) }
4748 	YY_BREAK
4749 case 31:
4750 YY_RULE_SETUP
4751 #line 245 "util/configlexer.lex"
4752 { YDVAR(1, VAR_SSL_UPSTREAM) }
4753 	YY_BREAK
4754 case 32:
4755 YY_RULE_SETUP
4756 #line 246 "util/configlexer.lex"
4757 { YDVAR(1, VAR_SSL_UPSTREAM) }
4758 	YY_BREAK
4759 case 33:
4760 YY_RULE_SETUP
4761 #line 247 "util/configlexer.lex"
4762 { YDVAR(1, VAR_SSL_SERVICE_KEY) }
4763 	YY_BREAK
4764 case 34:
4765 YY_RULE_SETUP
4766 #line 248 "util/configlexer.lex"
4767 { YDVAR(1, VAR_SSL_SERVICE_KEY) }
4768 	YY_BREAK
4769 case 35:
4770 YY_RULE_SETUP
4771 #line 249 "util/configlexer.lex"
4772 { YDVAR(1, VAR_SSL_SERVICE_PEM) }
4773 	YY_BREAK
4774 case 36:
4775 YY_RULE_SETUP
4776 #line 250 "util/configlexer.lex"
4777 { YDVAR(1, VAR_SSL_SERVICE_PEM) }
4778 	YY_BREAK
4779 case 37:
4780 YY_RULE_SETUP
4781 #line 251 "util/configlexer.lex"
4782 { YDVAR(1, VAR_SSL_PORT) }
4783 	YY_BREAK
4784 case 38:
4785 YY_RULE_SETUP
4786 #line 252 "util/configlexer.lex"
4787 { YDVAR(1, VAR_SSL_PORT) }
4788 	YY_BREAK
4789 case 39:
4790 YY_RULE_SETUP
4791 #line 253 "util/configlexer.lex"
4792 { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
4793 	YY_BREAK
4794 case 40:
4795 YY_RULE_SETUP
4796 #line 254 "util/configlexer.lex"
4797 { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
4798 	YY_BREAK
4799 case 41:
4800 YY_RULE_SETUP
4801 #line 255 "util/configlexer.lex"
4802 { YDVAR(1, VAR_TLS_WIN_CERT) }
4803 	YY_BREAK
4804 case 42:
4805 YY_RULE_SETUP
4806 #line 256 "util/configlexer.lex"
4807 { YDVAR(1, VAR_TLS_WIN_CERT) }
4808 	YY_BREAK
4809 case 43:
4810 YY_RULE_SETUP
4811 #line 257 "util/configlexer.lex"
4812 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
4813 	YY_BREAK
4814 case 44:
4815 YY_RULE_SETUP
4816 #line 258 "util/configlexer.lex"
4817 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
4818 	YY_BREAK
4819 case 45:
4820 YY_RULE_SETUP
4821 #line 259 "util/configlexer.lex"
4822 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
4823 	YY_BREAK
4824 case 46:
4825 YY_RULE_SETUP
4826 #line 260 "util/configlexer.lex"
4827 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
4828 	YY_BREAK
4829 case 47:
4830 YY_RULE_SETUP
4831 #line 261 "util/configlexer.lex"
4832 { YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) }
4833 	YY_BREAK
4834 case 48:
4835 YY_RULE_SETUP
4836 #line 262 "util/configlexer.lex"
4837 { YDVAR(1, VAR_TLS_CIPHERS) }
4838 	YY_BREAK
4839 case 49:
4840 YY_RULE_SETUP
4841 #line 263 "util/configlexer.lex"
4842 { YDVAR(1, VAR_TLS_CIPHERSUITES) }
4843 	YY_BREAK
4844 case 50:
4845 YY_RULE_SETUP
4846 #line 264 "util/configlexer.lex"
4847 { YDVAR(1, VAR_TLS_USE_SNI) }
4848 	YY_BREAK
4849 case 51:
4850 YY_RULE_SETUP
4851 #line 265 "util/configlexer.lex"
4852 { YDVAR(1, VAR_HTTPS_PORT) }
4853 	YY_BREAK
4854 case 52:
4855 YY_RULE_SETUP
4856 #line 266 "util/configlexer.lex"
4857 { YDVAR(1, VAR_HTTP_ENDPOINT) }
4858 	YY_BREAK
4859 case 53:
4860 YY_RULE_SETUP
4861 #line 267 "util/configlexer.lex"
4862 { YDVAR(1, VAR_HTTP_MAX_STREAMS) }
4863 	YY_BREAK
4864 case 54:
4865 YY_RULE_SETUP
4866 #line 268 "util/configlexer.lex"
4867 { YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) }
4868 	YY_BREAK
4869 case 55:
4870 YY_RULE_SETUP
4871 #line 269 "util/configlexer.lex"
4872 { YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) }
4873 	YY_BREAK
4874 case 56:
4875 YY_RULE_SETUP
4876 #line 270 "util/configlexer.lex"
4877 { YDVAR(1, VAR_HTTP_NODELAY) }
4878 	YY_BREAK
4879 case 57:
4880 YY_RULE_SETUP
4881 #line 271 "util/configlexer.lex"
4882 { YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) }
4883 	YY_BREAK
4884 case 58:
4885 YY_RULE_SETUP
4886 #line 272 "util/configlexer.lex"
4887 { YDVAR(1, VAR_USE_SYSTEMD) }
4888 	YY_BREAK
4889 case 59:
4890 YY_RULE_SETUP
4891 #line 273 "util/configlexer.lex"
4892 { YDVAR(1, VAR_DO_DAEMONIZE) }
4893 	YY_BREAK
4894 case 60:
4895 YY_RULE_SETUP
4896 #line 274 "util/configlexer.lex"
4897 { YDVAR(1, VAR_INTERFACE) }
4898 	YY_BREAK
4899 case 61:
4900 YY_RULE_SETUP
4901 #line 275 "util/configlexer.lex"
4902 { YDVAR(1, VAR_INTERFACE) }
4903 	YY_BREAK
4904 case 62:
4905 YY_RULE_SETUP
4906 #line 276 "util/configlexer.lex"
4907 { YDVAR(1, VAR_OUTGOING_INTERFACE) }
4908 	YY_BREAK
4909 case 63:
4910 YY_RULE_SETUP
4911 #line 277 "util/configlexer.lex"
4912 { YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
4913 	YY_BREAK
4914 case 64:
4915 YY_RULE_SETUP
4916 #line 278 "util/configlexer.lex"
4917 { YDVAR(1, VAR_INTERFACE_AUTOMATIC_PORTS) }
4918 	YY_BREAK
4919 case 65:
4920 YY_RULE_SETUP
4921 #line 279 "util/configlexer.lex"
4922 { YDVAR(1, VAR_SO_RCVBUF) }
4923 	YY_BREAK
4924 case 66:
4925 YY_RULE_SETUP
4926 #line 280 "util/configlexer.lex"
4927 { YDVAR(1, VAR_SO_SNDBUF) }
4928 	YY_BREAK
4929 case 67:
4930 YY_RULE_SETUP
4931 #line 281 "util/configlexer.lex"
4932 { YDVAR(1, VAR_SO_REUSEPORT) }
4933 	YY_BREAK
4934 case 68:
4935 YY_RULE_SETUP
4936 #line 282 "util/configlexer.lex"
4937 { YDVAR(1, VAR_IP_TRANSPARENT) }
4938 	YY_BREAK
4939 case 69:
4940 YY_RULE_SETUP
4941 #line 283 "util/configlexer.lex"
4942 { YDVAR(1, VAR_IP_FREEBIND) }
4943 	YY_BREAK
4944 case 70:
4945 YY_RULE_SETUP
4946 #line 284 "util/configlexer.lex"
4947 { YDVAR(1, VAR_IP_DSCP) }
4948 	YY_BREAK
4949 case 71:
4950 YY_RULE_SETUP
4951 #line 285 "util/configlexer.lex"
4952 { YDVAR(1, VAR_CHROOT) }
4953 	YY_BREAK
4954 case 72:
4955 YY_RULE_SETUP
4956 #line 286 "util/configlexer.lex"
4957 { YDVAR(1, VAR_USERNAME) }
4958 	YY_BREAK
4959 case 73:
4960 YY_RULE_SETUP
4961 #line 287 "util/configlexer.lex"
4962 { YDVAR(1, VAR_DIRECTORY) }
4963 	YY_BREAK
4964 case 74:
4965 YY_RULE_SETUP
4966 #line 288 "util/configlexer.lex"
4967 { YDVAR(1, VAR_LOGFILE) }
4968 	YY_BREAK
4969 case 75:
4970 YY_RULE_SETUP
4971 #line 289 "util/configlexer.lex"
4972 { YDVAR(1, VAR_PIDFILE) }
4973 	YY_BREAK
4974 case 76:
4975 YY_RULE_SETUP
4976 #line 290 "util/configlexer.lex"
4977 { YDVAR(1, VAR_ROOT_HINTS) }
4978 	YY_BREAK
4979 case 77:
4980 YY_RULE_SETUP
4981 #line 291 "util/configlexer.lex"
4982 { YDVAR(1, VAR_STREAM_WAIT_SIZE) }
4983 	YY_BREAK
4984 case 78:
4985 YY_RULE_SETUP
4986 #line 292 "util/configlexer.lex"
4987 { YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
4988 	YY_BREAK
4989 case 79:
4990 YY_RULE_SETUP
4991 #line 293 "util/configlexer.lex"
4992 { YDVAR(1, VAR_MSG_BUFFER_SIZE) }
4993 	YY_BREAK
4994 case 80:
4995 YY_RULE_SETUP
4996 #line 294 "util/configlexer.lex"
4997 { YDVAR(1, VAR_MSG_CACHE_SIZE) }
4998 	YY_BREAK
4999 case 81:
5000 YY_RULE_SETUP
5001 #line 295 "util/configlexer.lex"
5002 { YDVAR(1, VAR_MSG_CACHE_SLABS) }
5003 	YY_BREAK
5004 case 82:
5005 YY_RULE_SETUP
5006 #line 296 "util/configlexer.lex"
5007 { YDVAR(1, VAR_RRSET_CACHE_SIZE) }
5008 	YY_BREAK
5009 case 83:
5010 YY_RULE_SETUP
5011 #line 297 "util/configlexer.lex"
5012 { YDVAR(1, VAR_RRSET_CACHE_SLABS) }
5013 	YY_BREAK
5014 case 84:
5015 YY_RULE_SETUP
5016 #line 298 "util/configlexer.lex"
5017 { YDVAR(1, VAR_CACHE_MAX_TTL) }
5018 	YY_BREAK
5019 case 85:
5020 YY_RULE_SETUP
5021 #line 299 "util/configlexer.lex"
5022 { YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
5023 	YY_BREAK
5024 case 86:
5025 YY_RULE_SETUP
5026 #line 300 "util/configlexer.lex"
5027 { YDVAR(1, VAR_CACHE_MIN_TTL) }
5028 	YY_BREAK
5029 case 87:
5030 YY_RULE_SETUP
5031 #line 301 "util/configlexer.lex"
5032 { YDVAR(1, VAR_INFRA_HOST_TTL) }
5033 	YY_BREAK
5034 case 88:
5035 YY_RULE_SETUP
5036 #line 302 "util/configlexer.lex"
5037 { YDVAR(1, VAR_INFRA_LAME_TTL) }
5038 	YY_BREAK
5039 case 89:
5040 YY_RULE_SETUP
5041 #line 303 "util/configlexer.lex"
5042 { YDVAR(1, VAR_INFRA_CACHE_SLABS) }
5043 	YY_BREAK
5044 case 90:
5045 YY_RULE_SETUP
5046 #line 304 "util/configlexer.lex"
5047 { YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
5048 	YY_BREAK
5049 case 91:
5050 YY_RULE_SETUP
5051 #line 305 "util/configlexer.lex"
5052 { YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
5053 	YY_BREAK
5054 case 92:
5055 YY_RULE_SETUP
5056 #line 306 "util/configlexer.lex"
5057 { YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
5058 	YY_BREAK
5059 case 93:
5060 YY_RULE_SETUP
5061 #line 307 "util/configlexer.lex"
5062 { YDVAR(1, VAR_INFRA_CACHE_MAX_RTT) }
5063 	YY_BREAK
5064 case 94:
5065 YY_RULE_SETUP
5066 #line 308 "util/configlexer.lex"
5067 { YDVAR(1, VAR_INFRA_KEEP_PROBING) }
5068 	YY_BREAK
5069 case 95:
5070 YY_RULE_SETUP
5071 #line 309 "util/configlexer.lex"
5072 { YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
5073 	YY_BREAK
5074 case 96:
5075 YY_RULE_SETUP
5076 #line 310 "util/configlexer.lex"
5077 { YDVAR(1, VAR_JOSTLE_TIMEOUT) }
5078 	YY_BREAK
5079 case 97:
5080 YY_RULE_SETUP
5081 #line 311 "util/configlexer.lex"
5082 { YDVAR(1, VAR_DELAY_CLOSE) }
5083 	YY_BREAK
5084 case 98:
5085 YY_RULE_SETUP
5086 #line 312 "util/configlexer.lex"
5087 { YDVAR(1, VAR_UDP_CONNECT) }
5088 	YY_BREAK
5089 case 99:
5090 YY_RULE_SETUP
5091 #line 313 "util/configlexer.lex"
5092 { YDVAR(1, VAR_TARGET_FETCH_POLICY) }
5093 	YY_BREAK
5094 case 100:
5095 YY_RULE_SETUP
5096 #line 314 "util/configlexer.lex"
5097 { YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
5098 	YY_BREAK
5099 case 101:
5100 YY_RULE_SETUP
5101 #line 315 "util/configlexer.lex"
5102 { YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
5103 	YY_BREAK
5104 case 102:
5105 YY_RULE_SETUP
5106 #line 316 "util/configlexer.lex"
5107 { YDVAR(1, VAR_HARDEN_GLUE) }
5108 	YY_BREAK
5109 case 103:
5110 YY_RULE_SETUP
5111 #line 317 "util/configlexer.lex"
5112 { YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
5113 	YY_BREAK
5114 case 104:
5115 YY_RULE_SETUP
5116 #line 318 "util/configlexer.lex"
5117 { YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
5118 	YY_BREAK
5119 case 105:
5120 YY_RULE_SETUP
5121 #line 319 "util/configlexer.lex"
5122 { YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
5123 	YY_BREAK
5124 case 106:
5125 YY_RULE_SETUP
5126 #line 320 "util/configlexer.lex"
5127 { YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
5128 	YY_BREAK
5129 case 107:
5130 YY_RULE_SETUP
5131 #line 321 "util/configlexer.lex"
5132 { YDVAR(1, VAR_HARDEN_UNKNOWN_ADDITIONAL) }
5133 	YY_BREAK
5134 case 108:
5135 YY_RULE_SETUP
5136 #line 322 "util/configlexer.lex"
5137 { YDVAR(1, VAR_USE_CAPS_FOR_ID) }
5138 	YY_BREAK
5139 case 109:
5140 YY_RULE_SETUP
5141 #line 323 "util/configlexer.lex"
5142 { YDVAR(1, VAR_CAPS_WHITELIST) }
5143 	YY_BREAK
5144 case 110:
5145 YY_RULE_SETUP
5146 #line 324 "util/configlexer.lex"
5147 { YDVAR(1, VAR_CAPS_WHITELIST) }
5148 	YY_BREAK
5149 case 111:
5150 YY_RULE_SETUP
5151 #line 325 "util/configlexer.lex"
5152 { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
5153 	YY_BREAK
5154 case 112:
5155 YY_RULE_SETUP
5156 #line 326 "util/configlexer.lex"
5157 { YDVAR(1, VAR_PRIVATE_ADDRESS) }
5158 	YY_BREAK
5159 case 113:
5160 YY_RULE_SETUP
5161 #line 327 "util/configlexer.lex"
5162 { YDVAR(1, VAR_PRIVATE_DOMAIN) }
5163 	YY_BREAK
5164 case 114:
5165 YY_RULE_SETUP
5166 #line 328 "util/configlexer.lex"
5167 { YDVAR(1, VAR_PREFETCH_KEY) }
5168 	YY_BREAK
5169 case 115:
5170 YY_RULE_SETUP
5171 #line 329 "util/configlexer.lex"
5172 { YDVAR(1, VAR_PREFETCH) }
5173 	YY_BREAK
5174 case 116:
5175 YY_RULE_SETUP
5176 #line 330 "util/configlexer.lex"
5177 { YDVAR(1, VAR_DENY_ANY) }
5178 	YY_BREAK
5179 case 117:
5180 YY_RULE_SETUP
5181 #line 331 "util/configlexer.lex"
5182 { YDVAR(0, VAR_STUB_ZONE) }
5183 	YY_BREAK
5184 case 118:
5185 YY_RULE_SETUP
5186 #line 332 "util/configlexer.lex"
5187 { YDVAR(1, VAR_NAME) }
5188 	YY_BREAK
5189 case 119:
5190 YY_RULE_SETUP
5191 #line 333 "util/configlexer.lex"
5192 { YDVAR(1, VAR_STUB_ADDR) }
5193 	YY_BREAK
5194 case 120:
5195 YY_RULE_SETUP
5196 #line 334 "util/configlexer.lex"
5197 { YDVAR(1, VAR_STUB_HOST) }
5198 	YY_BREAK
5199 case 121:
5200 YY_RULE_SETUP
5201 #line 335 "util/configlexer.lex"
5202 { YDVAR(1, VAR_STUB_PRIME) }
5203 	YY_BREAK
5204 case 122:
5205 YY_RULE_SETUP
5206 #line 336 "util/configlexer.lex"
5207 { YDVAR(1, VAR_STUB_FIRST) }
5208 	YY_BREAK
5209 case 123:
5210 YY_RULE_SETUP
5211 #line 337 "util/configlexer.lex"
5212 { YDVAR(1, VAR_STUB_NO_CACHE) }
5213 	YY_BREAK
5214 case 124:
5215 YY_RULE_SETUP
5216 #line 338 "util/configlexer.lex"
5217 { YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
5218 	YY_BREAK
5219 case 125:
5220 YY_RULE_SETUP
5221 #line 339 "util/configlexer.lex"
5222 { YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
5223 	YY_BREAK
5224 case 126:
5225 YY_RULE_SETUP
5226 #line 340 "util/configlexer.lex"
5227 { YDVAR(1, VAR_STUB_TCP_UPSTREAM) }
5228 	YY_BREAK
5229 case 127:
5230 YY_RULE_SETUP
5231 #line 341 "util/configlexer.lex"
5232 { YDVAR(0, VAR_FORWARD_ZONE) }
5233 	YY_BREAK
5234 case 128:
5235 YY_RULE_SETUP
5236 #line 342 "util/configlexer.lex"
5237 { YDVAR(1, VAR_FORWARD_ADDR) }
5238 	YY_BREAK
5239 case 129:
5240 YY_RULE_SETUP
5241 #line 343 "util/configlexer.lex"
5242 { YDVAR(1, VAR_FORWARD_HOST) }
5243 	YY_BREAK
5244 case 130:
5245 YY_RULE_SETUP
5246 #line 344 "util/configlexer.lex"
5247 { YDVAR(1, VAR_FORWARD_FIRST) }
5248 	YY_BREAK
5249 case 131:
5250 YY_RULE_SETUP
5251 #line 345 "util/configlexer.lex"
5252 { YDVAR(1, VAR_FORWARD_NO_CACHE) }
5253 	YY_BREAK
5254 case 132:
5255 YY_RULE_SETUP
5256 #line 346 "util/configlexer.lex"
5257 { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
5258 	YY_BREAK
5259 case 133:
5260 YY_RULE_SETUP
5261 #line 347 "util/configlexer.lex"
5262 { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
5263 	YY_BREAK
5264 case 134:
5265 YY_RULE_SETUP
5266 #line 348 "util/configlexer.lex"
5267 { YDVAR(1, VAR_FORWARD_TCP_UPSTREAM) }
5268 	YY_BREAK
5269 case 135:
5270 YY_RULE_SETUP
5271 #line 349 "util/configlexer.lex"
5272 { YDVAR(0, VAR_AUTH_ZONE) }
5273 	YY_BREAK
5274 case 136:
5275 YY_RULE_SETUP
5276 #line 350 "util/configlexer.lex"
5277 { YDVAR(0, VAR_RPZ) }
5278 	YY_BREAK
5279 case 137:
5280 YY_RULE_SETUP
5281 #line 351 "util/configlexer.lex"
5282 { YDVAR(1, VAR_TAGS) }
5283 	YY_BREAK
5284 case 138:
5285 YY_RULE_SETUP
5286 #line 352 "util/configlexer.lex"
5287 { YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) }
5288 	YY_BREAK
5289 case 139:
5290 YY_RULE_SETUP
5291 #line 353 "util/configlexer.lex"
5292 { YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) }
5293 	YY_BREAK
5294 case 140:
5295 YY_RULE_SETUP
5296 #line 354 "util/configlexer.lex"
5297 { YDVAR(1, VAR_RPZ_LOG) }
5298 	YY_BREAK
5299 case 141:
5300 YY_RULE_SETUP
5301 #line 355 "util/configlexer.lex"
5302 { YDVAR(1, VAR_RPZ_LOG_NAME) }
5303 	YY_BREAK
5304 case 142:
5305 YY_RULE_SETUP
5306 #line 356 "util/configlexer.lex"
5307 { YDVAR(1, VAR_RPZ_SIGNAL_NXDOMAIN_RA) }
5308 	YY_BREAK
5309 case 143:
5310 YY_RULE_SETUP
5311 #line 357 "util/configlexer.lex"
5312 { YDVAR(1, VAR_ZONEFILE) }
5313 	YY_BREAK
5314 case 144:
5315 YY_RULE_SETUP
5316 #line 358 "util/configlexer.lex"
5317 { YDVAR(1, VAR_MASTER) }
5318 	YY_BREAK
5319 case 145:
5320 YY_RULE_SETUP
5321 #line 359 "util/configlexer.lex"
5322 { YDVAR(1, VAR_MASTER) }
5323 	YY_BREAK
5324 case 146:
5325 YY_RULE_SETUP
5326 #line 360 "util/configlexer.lex"
5327 { YDVAR(1, VAR_URL) }
5328 	YY_BREAK
5329 case 147:
5330 YY_RULE_SETUP
5331 #line 361 "util/configlexer.lex"
5332 { YDVAR(1, VAR_ALLOW_NOTIFY) }
5333 	YY_BREAK
5334 case 148:
5335 YY_RULE_SETUP
5336 #line 362 "util/configlexer.lex"
5337 { YDVAR(1, VAR_FOR_DOWNSTREAM) }
5338 	YY_BREAK
5339 case 149:
5340 YY_RULE_SETUP
5341 #line 363 "util/configlexer.lex"
5342 { YDVAR(1, VAR_FOR_UPSTREAM) }
5343 	YY_BREAK
5344 case 150:
5345 YY_RULE_SETUP
5346 #line 364 "util/configlexer.lex"
5347 { YDVAR(1, VAR_FALLBACK_ENABLED) }
5348 	YY_BREAK
5349 case 151:
5350 YY_RULE_SETUP
5351 #line 365 "util/configlexer.lex"
5352 { YDVAR(0, VAR_VIEW) }
5353 	YY_BREAK
5354 case 152:
5355 YY_RULE_SETUP
5356 #line 366 "util/configlexer.lex"
5357 { YDVAR(1, VAR_VIEW_FIRST) }
5358 	YY_BREAK
5359 case 153:
5360 YY_RULE_SETUP
5361 #line 367 "util/configlexer.lex"
5362 { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
5363 	YY_BREAK
5364 case 154:
5365 YY_RULE_SETUP
5366 #line 368 "util/configlexer.lex"
5367 { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
5368 	YY_BREAK
5369 case 155:
5370 YY_RULE_SETUP
5371 #line 369 "util/configlexer.lex"
5372 { YDVAR(2, VAR_ACCESS_CONTROL) }
5373 	YY_BREAK
5374 case 156:
5375 YY_RULE_SETUP
5376 #line 370 "util/configlexer.lex"
5377 { YDVAR(2, VAR_INTERFACE_ACTION) }
5378 	YY_BREAK
5379 case 157:
5380 YY_RULE_SETUP
5381 #line 371 "util/configlexer.lex"
5382 { YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
5383 	YY_BREAK
5384 case 158:
5385 YY_RULE_SETUP
5386 #line 372 "util/configlexer.lex"
5387 { YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
5388 	YY_BREAK
5389 case 159:
5390 YY_RULE_SETUP
5391 #line 373 "util/configlexer.lex"
5392 { YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
5393 	YY_BREAK
5394 case 160:
5395 YY_RULE_SETUP
5396 #line 374 "util/configlexer.lex"
5397 { YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
5398 	YY_BREAK
5399 case 161:
5400 YY_RULE_SETUP
5401 #line 375 "util/configlexer.lex"
5402 { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
5403 	YY_BREAK
5404 case 162:
5405 YY_RULE_SETUP
5406 #line 376 "util/configlexer.lex"
5407 { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
5408 	YY_BREAK
5409 case 163:
5410 YY_RULE_SETUP
5411 #line 377 "util/configlexer.lex"
5412 { YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) }
5413 	YY_BREAK
5414 case 164:
5415 YY_RULE_SETUP
5416 #line 378 "util/configlexer.lex"
5417 { YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) }
5418 	YY_BREAK
5419 case 165:
5420 YY_RULE_SETUP
5421 #line 379 "util/configlexer.lex"
5422 { YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) }
5423 	YY_BREAK
5424 case 166:
5425 YY_RULE_SETUP
5426 #line 380 "util/configlexer.lex"
5427 { YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) }
5428 	YY_BREAK
5429 case 167:
5430 YY_RULE_SETUP
5431 #line 381 "util/configlexer.lex"
5432 { YDVAR(1, VAR_HIDE_IDENTITY) }
5433 	YY_BREAK
5434 case 168:
5435 YY_RULE_SETUP
5436 #line 382 "util/configlexer.lex"
5437 { YDVAR(1, VAR_HIDE_VERSION) }
5438 	YY_BREAK
5439 case 169:
5440 YY_RULE_SETUP
5441 #line 383 "util/configlexer.lex"
5442 { YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
5443 	YY_BREAK
5444 case 170:
5445 YY_RULE_SETUP
5446 #line 384 "util/configlexer.lex"
5447 { YDVAR(1, VAR_HIDE_HTTP_USER_AGENT) }
5448 	YY_BREAK
5449 case 171:
5450 YY_RULE_SETUP
5451 #line 385 "util/configlexer.lex"
5452 { YDVAR(1, VAR_IDENTITY) }
5453 	YY_BREAK
5454 case 172:
5455 YY_RULE_SETUP
5456 #line 386 "util/configlexer.lex"
5457 { YDVAR(1, VAR_VERSION) }
5458 	YY_BREAK
5459 case 173:
5460 YY_RULE_SETUP
5461 #line 387 "util/configlexer.lex"
5462 { YDVAR(1, VAR_HTTP_USER_AGENT) }
5463 	YY_BREAK
5464 case 174:
5465 YY_RULE_SETUP
5466 #line 388 "util/configlexer.lex"
5467 { YDVAR(1, VAR_MODULE_CONF) }
5468 	YY_BREAK
5469 case 175:
5470 YY_RULE_SETUP
5471 #line 389 "util/configlexer.lex"
5472 { YDVAR(1, VAR_DLV_ANCHOR) }
5473 	YY_BREAK
5474 case 176:
5475 YY_RULE_SETUP
5476 #line 390 "util/configlexer.lex"
5477 { YDVAR(1, VAR_DLV_ANCHOR_FILE) }
5478 	YY_BREAK
5479 case 177:
5480 YY_RULE_SETUP
5481 #line 391 "util/configlexer.lex"
5482 { YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
5483 	YY_BREAK
5484 case 178:
5485 YY_RULE_SETUP
5486 #line 392 "util/configlexer.lex"
5487 { YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
5488 	YY_BREAK
5489 case 179:
5490 YY_RULE_SETUP
5491 #line 393 "util/configlexer.lex"
5492 { YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
5493 	YY_BREAK
5494 case 180:
5495 YY_RULE_SETUP
5496 #line 394 "util/configlexer.lex"
5497 { YDVAR(1, VAR_TRUST_ANCHOR) }
5498 	YY_BREAK
5499 case 181:
5500 YY_RULE_SETUP
5501 #line 395 "util/configlexer.lex"
5502 { YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
5503 	YY_BREAK
5504 case 182:
5505 YY_RULE_SETUP
5506 #line 396 "util/configlexer.lex"
5507 { YDVAR(1, VAR_ROOT_KEY_SENTINEL) }
5508 	YY_BREAK
5509 case 183:
5510 YY_RULE_SETUP
5511 #line 397 "util/configlexer.lex"
5512 { YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
5513 	YY_BREAK
5514 case 184:
5515 YY_RULE_SETUP
5516 #line 398 "util/configlexer.lex"
5517 { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
5518 	YY_BREAK
5519 case 185:
5520 YY_RULE_SETUP
5521 #line 399 "util/configlexer.lex"
5522 { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
5523 	YY_BREAK
5524 case 186:
5525 YY_RULE_SETUP
5526 #line 400 "util/configlexer.lex"
5527 { YDVAR(1, VAR_VAL_MAX_RESTART) }
5528 	YY_BREAK
5529 case 187:
5530 YY_RULE_SETUP
5531 #line 401 "util/configlexer.lex"
5532 { YDVAR(1, VAR_BOGUS_TTL) }
5533 	YY_BREAK
5534 case 188:
5535 YY_RULE_SETUP
5536 #line 402 "util/configlexer.lex"
5537 { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
5538 	YY_BREAK
5539 case 189:
5540 YY_RULE_SETUP
5541 #line 403 "util/configlexer.lex"
5542 { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
5543 	YY_BREAK
5544 case 190:
5545 YY_RULE_SETUP
5546 #line 404 "util/configlexer.lex"
5547 { YDVAR(1, VAR_AGGRESSIVE_NSEC) }
5548 	YY_BREAK
5549 case 191:
5550 YY_RULE_SETUP
5551 #line 405 "util/configlexer.lex"
5552 { YDVAR(1, VAR_IGNORE_CD_FLAG) }
5553 	YY_BREAK
5554 case 192:
5555 YY_RULE_SETUP
5556 #line 406 "util/configlexer.lex"
5557 { YDVAR(1, VAR_DISABLE_EDNS_DO) }
5558 	YY_BREAK
5559 case 193:
5560 YY_RULE_SETUP
5561 #line 407 "util/configlexer.lex"
5562 { YDVAR(1, VAR_SERVE_EXPIRED) }
5563 	YY_BREAK
5564 case 194:
5565 YY_RULE_SETUP
5566 #line 408 "util/configlexer.lex"
5567 { YDVAR(1, VAR_SERVE_EXPIRED_TTL) }
5568 	YY_BREAK
5569 case 195:
5570 YY_RULE_SETUP
5571 #line 409 "util/configlexer.lex"
5572 { YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) }
5573 	YY_BREAK
5574 case 196:
5575 YY_RULE_SETUP
5576 #line 410 "util/configlexer.lex"
5577 { YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) }
5578 	YY_BREAK
5579 case 197:
5580 YY_RULE_SETUP
5581 #line 411 "util/configlexer.lex"
5582 { YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) }
5583 	YY_BREAK
5584 case 198:
5585 YY_RULE_SETUP
5586 #line 412 "util/configlexer.lex"
5587 { YDVAR(1, VAR_EDE_SERVE_EXPIRED) }
5588 	YY_BREAK
5589 case 199:
5590 YY_RULE_SETUP
5591 #line 413 "util/configlexer.lex"
5592 { YDVAR(1, VAR_SERVE_ORIGINAL_TTL) }
5593 	YY_BREAK
5594 case 200:
5595 YY_RULE_SETUP
5596 #line 414 "util/configlexer.lex"
5597 { YDVAR(1, VAR_FAKE_DSA) }
5598 	YY_BREAK
5599 case 201:
5600 YY_RULE_SETUP
5601 #line 415 "util/configlexer.lex"
5602 { YDVAR(1, VAR_FAKE_SHA1) }
5603 	YY_BREAK
5604 case 202:
5605 YY_RULE_SETUP
5606 #line 416 "util/configlexer.lex"
5607 { YDVAR(1, VAR_VAL_LOG_LEVEL) }
5608 	YY_BREAK
5609 case 203:
5610 YY_RULE_SETUP
5611 #line 417 "util/configlexer.lex"
5612 { YDVAR(1, VAR_KEY_CACHE_SIZE) }
5613 	YY_BREAK
5614 case 204:
5615 YY_RULE_SETUP
5616 #line 418 "util/configlexer.lex"
5617 { YDVAR(1, VAR_KEY_CACHE_SLABS) }
5618 	YY_BREAK
5619 case 205:
5620 YY_RULE_SETUP
5621 #line 419 "util/configlexer.lex"
5622 { YDVAR(1, VAR_NEG_CACHE_SIZE) }
5623 	YY_BREAK
5624 case 206:
5625 YY_RULE_SETUP
5626 #line 420 "util/configlexer.lex"
5627 {
5628 				  YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
5629 	YY_BREAK
5630 case 207:
5631 YY_RULE_SETUP
5632 #line 422 "util/configlexer.lex"
5633 { YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) }
5634 	YY_BREAK
5635 case 208:
5636 YY_RULE_SETUP
5637 #line 423 "util/configlexer.lex"
5638 { YDVAR(1, VAR_ZONEMD_CHECK) }
5639 	YY_BREAK
5640 case 209:
5641 YY_RULE_SETUP
5642 #line 424 "util/configlexer.lex"
5643 { YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) }
5644 	YY_BREAK
5645 case 210:
5646 YY_RULE_SETUP
5647 #line 425 "util/configlexer.lex"
5648 { YDVAR(1, VAR_ADD_HOLDDOWN) }
5649 	YY_BREAK
5650 case 211:
5651 YY_RULE_SETUP
5652 #line 426 "util/configlexer.lex"
5653 { YDVAR(1, VAR_DEL_HOLDDOWN) }
5654 	YY_BREAK
5655 case 212:
5656 YY_RULE_SETUP
5657 #line 427 "util/configlexer.lex"
5658 { YDVAR(1, VAR_KEEP_MISSING) }
5659 	YY_BREAK
5660 case 213:
5661 YY_RULE_SETUP
5662 #line 428 "util/configlexer.lex"
5663 { YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
5664 	YY_BREAK
5665 case 214:
5666 YY_RULE_SETUP
5667 #line 429 "util/configlexer.lex"
5668 { YDVAR(1, VAR_USE_SYSLOG) }
5669 	YY_BREAK
5670 case 215:
5671 YY_RULE_SETUP
5672 #line 430 "util/configlexer.lex"
5673 { YDVAR(1, VAR_LOG_IDENTITY) }
5674 	YY_BREAK
5675 case 216:
5676 YY_RULE_SETUP
5677 #line 431 "util/configlexer.lex"
5678 { YDVAR(1, VAR_LOG_TIME_ASCII) }
5679 	YY_BREAK
5680 case 217:
5681 YY_RULE_SETUP
5682 #line 432 "util/configlexer.lex"
5683 { YDVAR(1, VAR_LOG_QUERIES) }
5684 	YY_BREAK
5685 case 218:
5686 YY_RULE_SETUP
5687 #line 433 "util/configlexer.lex"
5688 { YDVAR(1, VAR_LOG_REPLIES) }
5689 	YY_BREAK
5690 case 219:
5691 YY_RULE_SETUP
5692 #line 434 "util/configlexer.lex"
5693 { YDVAR(1, VAR_LOG_TAG_QUERYREPLY) }
5694 	YY_BREAK
5695 case 220:
5696 YY_RULE_SETUP
5697 #line 435 "util/configlexer.lex"
5698 { YDVAR(1, VAR_LOG_LOCAL_ACTIONS) }
5699 	YY_BREAK
5700 case 221:
5701 YY_RULE_SETUP
5702 #line 436 "util/configlexer.lex"
5703 { YDVAR(1, VAR_LOG_SERVFAIL) }
5704 	YY_BREAK
5705 case 222:
5706 YY_RULE_SETUP
5707 #line 437 "util/configlexer.lex"
5708 { YDVAR(1, VAR_LOG_DESTADDR) }
5709 	YY_BREAK
5710 case 223:
5711 YY_RULE_SETUP
5712 #line 438 "util/configlexer.lex"
5713 { YDVAR(2, VAR_LOCAL_ZONE) }
5714 	YY_BREAK
5715 case 224:
5716 YY_RULE_SETUP
5717 #line 439 "util/configlexer.lex"
5718 { YDVAR(1, VAR_LOCAL_DATA) }
5719 	YY_BREAK
5720 case 225:
5721 YY_RULE_SETUP
5722 #line 440 "util/configlexer.lex"
5723 { YDVAR(1, VAR_LOCAL_DATA_PTR) }
5724 	YY_BREAK
5725 case 226:
5726 YY_RULE_SETUP
5727 #line 441 "util/configlexer.lex"
5728 { YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
5729 	YY_BREAK
5730 case 227:
5731 YY_RULE_SETUP
5732 #line 442 "util/configlexer.lex"
5733 { YDVAR(1, VAR_INSECURE_LAN_ZONES) }
5734 	YY_BREAK
5735 case 228:
5736 YY_RULE_SETUP
5737 #line 443 "util/configlexer.lex"
5738 { YDVAR(1, VAR_STATISTICS_INTERVAL) }
5739 	YY_BREAK
5740 case 229:
5741 YY_RULE_SETUP
5742 #line 444 "util/configlexer.lex"
5743 { YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
5744 	YY_BREAK
5745 case 230:
5746 YY_RULE_SETUP
5747 #line 445 "util/configlexer.lex"
5748 { YDVAR(1, VAR_EXTENDED_STATISTICS) }
5749 	YY_BREAK
5750 case 231:
5751 YY_RULE_SETUP
5752 #line 446 "util/configlexer.lex"
5753 { YDVAR(1, VAR_STATISTICS_INHIBIT_ZERO) }
5754 	YY_BREAK
5755 case 232:
5756 YY_RULE_SETUP
5757 #line 447 "util/configlexer.lex"
5758 { YDVAR(1, VAR_SHM_ENABLE) }
5759 	YY_BREAK
5760 case 233:
5761 YY_RULE_SETUP
5762 #line 448 "util/configlexer.lex"
5763 { YDVAR(1, VAR_SHM_KEY) }
5764 	YY_BREAK
5765 case 234:
5766 YY_RULE_SETUP
5767 #line 449 "util/configlexer.lex"
5768 { YDVAR(0, VAR_REMOTE_CONTROL) }
5769 	YY_BREAK
5770 case 235:
5771 YY_RULE_SETUP
5772 #line 450 "util/configlexer.lex"
5773 { YDVAR(1, VAR_CONTROL_ENABLE) }
5774 	YY_BREAK
5775 case 236:
5776 YY_RULE_SETUP
5777 #line 451 "util/configlexer.lex"
5778 { YDVAR(1, VAR_CONTROL_INTERFACE) }
5779 	YY_BREAK
5780 case 237:
5781 YY_RULE_SETUP
5782 #line 452 "util/configlexer.lex"
5783 { YDVAR(1, VAR_CONTROL_PORT) }
5784 	YY_BREAK
5785 case 238:
5786 YY_RULE_SETUP
5787 #line 453 "util/configlexer.lex"
5788 { YDVAR(1, VAR_CONTROL_USE_CERT) }
5789 	YY_BREAK
5790 case 239:
5791 YY_RULE_SETUP
5792 #line 454 "util/configlexer.lex"
5793 { YDVAR(1, VAR_SERVER_KEY_FILE) }
5794 	YY_BREAK
5795 case 240:
5796 YY_RULE_SETUP
5797 #line 455 "util/configlexer.lex"
5798 { YDVAR(1, VAR_SERVER_CERT_FILE) }
5799 	YY_BREAK
5800 case 241:
5801 YY_RULE_SETUP
5802 #line 456 "util/configlexer.lex"
5803 { YDVAR(1, VAR_CONTROL_KEY_FILE) }
5804 	YY_BREAK
5805 case 242:
5806 YY_RULE_SETUP
5807 #line 457 "util/configlexer.lex"
5808 { YDVAR(1, VAR_CONTROL_CERT_FILE) }
5809 	YY_BREAK
5810 case 243:
5811 YY_RULE_SETUP
5812 #line 458 "util/configlexer.lex"
5813 { YDVAR(1, VAR_PYTHON_SCRIPT) }
5814 	YY_BREAK
5815 case 244:
5816 YY_RULE_SETUP
5817 #line 459 "util/configlexer.lex"
5818 { YDVAR(0, VAR_PYTHON) }
5819 	YY_BREAK
5820 case 245:
5821 YY_RULE_SETUP
5822 #line 460 "util/configlexer.lex"
5823 { YDVAR(1, VAR_DYNLIB_FILE) }
5824 	YY_BREAK
5825 case 246:
5826 YY_RULE_SETUP
5827 #line 461 "util/configlexer.lex"
5828 { YDVAR(0, VAR_DYNLIB) }
5829 	YY_BREAK
5830 case 247:
5831 YY_RULE_SETUP
5832 #line 462 "util/configlexer.lex"
5833 { YDVAR(1, VAR_DOMAIN_INSECURE) }
5834 	YY_BREAK
5835 case 248:
5836 YY_RULE_SETUP
5837 #line 463 "util/configlexer.lex"
5838 { YDVAR(1, VAR_MINIMAL_RESPONSES) }
5839 	YY_BREAK
5840 case 249:
5841 YY_RULE_SETUP
5842 #line 464 "util/configlexer.lex"
5843 { YDVAR(1, VAR_RRSET_ROUNDROBIN) }
5844 	YY_BREAK
5845 case 250:
5846 YY_RULE_SETUP
5847 #line 465 "util/configlexer.lex"
5848 { YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) }
5849 	YY_BREAK
5850 case 251:
5851 YY_RULE_SETUP
5852 #line 466 "util/configlexer.lex"
5853 { YDVAR(1, VAR_MAX_UDP_SIZE) }
5854 	YY_BREAK
5855 case 252:
5856 YY_RULE_SETUP
5857 #line 467 "util/configlexer.lex"
5858 { YDVAR(1, VAR_DNS64_PREFIX) }
5859 	YY_BREAK
5860 case 253:
5861 YY_RULE_SETUP
5862 #line 468 "util/configlexer.lex"
5863 { YDVAR(1, VAR_DNS64_SYNTHALL) }
5864 	YY_BREAK
5865 case 254:
5866 YY_RULE_SETUP
5867 #line 469 "util/configlexer.lex"
5868 { YDVAR(1, VAR_DNS64_IGNORE_AAAA) }
5869 	YY_BREAK
5870 case 255:
5871 YY_RULE_SETUP
5872 #line 470 "util/configlexer.lex"
5873 { YDVAR(1, VAR_NAT64_PREFIX) }
5874 	YY_BREAK
5875 case 256:
5876 YY_RULE_SETUP
5877 #line 471 "util/configlexer.lex"
5878 { YDVAR(1, VAR_DEFINE_TAG) }
5879 	YY_BREAK
5880 case 257:
5881 YY_RULE_SETUP
5882 #line 472 "util/configlexer.lex"
5883 { YDVAR(2, VAR_LOCAL_ZONE_TAG) }
5884 	YY_BREAK
5885 case 258:
5886 YY_RULE_SETUP
5887 #line 473 "util/configlexer.lex"
5888 { YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
5889 	YY_BREAK
5890 case 259:
5891 YY_RULE_SETUP
5892 #line 474 "util/configlexer.lex"
5893 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
5894 	YY_BREAK
5895 case 260:
5896 YY_RULE_SETUP
5897 #line 475 "util/configlexer.lex"
5898 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
5899 	YY_BREAK
5900 case 261:
5901 YY_RULE_SETUP
5902 #line 476 "util/configlexer.lex"
5903 { YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
5904 	YY_BREAK
5905 case 262:
5906 YY_RULE_SETUP
5907 #line 477 "util/configlexer.lex"
5908 { YDVAR(2, VAR_INTERFACE_TAG) }
5909 	YY_BREAK
5910 case 263:
5911 YY_RULE_SETUP
5912 #line 478 "util/configlexer.lex"
5913 { YDVAR(3, VAR_INTERFACE_TAG_ACTION) }
5914 	YY_BREAK
5915 case 264:
5916 YY_RULE_SETUP
5917 #line 479 "util/configlexer.lex"
5918 { YDVAR(3, VAR_INTERFACE_TAG_DATA) }
5919 	YY_BREAK
5920 case 265:
5921 YY_RULE_SETUP
5922 #line 480 "util/configlexer.lex"
5923 { YDVAR(2, VAR_INTERFACE_VIEW) }
5924 	YY_BREAK
5925 case 266:
5926 YY_RULE_SETUP
5927 #line 481 "util/configlexer.lex"
5928 { YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
5929 	YY_BREAK
5930 case 267:
5931 YY_RULE_SETUP
5932 #line 482 "util/configlexer.lex"
5933 { YDVAR(0, VAR_DNSTAP) }
5934 	YY_BREAK
5935 case 268:
5936 YY_RULE_SETUP
5937 #line 483 "util/configlexer.lex"
5938 { YDVAR(1, VAR_DNSTAP_ENABLE) }
5939 	YY_BREAK
5940 case 269:
5941 YY_RULE_SETUP
5942 #line 484 "util/configlexer.lex"
5943 { YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) }
5944 	YY_BREAK
5945 case 270:
5946 YY_RULE_SETUP
5947 #line 485 "util/configlexer.lex"
5948 { YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
5949 	YY_BREAK
5950 case 271:
5951 YY_RULE_SETUP
5952 #line 486 "util/configlexer.lex"
5953 { YDVAR(1, VAR_DNSTAP_IP) }
5954 	YY_BREAK
5955 case 272:
5956 YY_RULE_SETUP
5957 #line 487 "util/configlexer.lex"
5958 { YDVAR(1, VAR_DNSTAP_TLS) }
5959 	YY_BREAK
5960 case 273:
5961 YY_RULE_SETUP
5962 #line 488 "util/configlexer.lex"
5963 { YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) }
5964 	YY_BREAK
5965 case 274:
5966 YY_RULE_SETUP
5967 #line 489 "util/configlexer.lex"
5968 { YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) }
5969 	YY_BREAK
5970 case 275:
5971 YY_RULE_SETUP
5972 #line 490 "util/configlexer.lex"
5973 {
5974 		YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) }
5975 	YY_BREAK
5976 case 276:
5977 YY_RULE_SETUP
5978 #line 492 "util/configlexer.lex"
5979 {
5980 		YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) }
5981 	YY_BREAK
5982 case 277:
5983 YY_RULE_SETUP
5984 #line 494 "util/configlexer.lex"
5985 { YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
5986 	YY_BREAK
5987 case 278:
5988 YY_RULE_SETUP
5989 #line 495 "util/configlexer.lex"
5990 { YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
5991 	YY_BREAK
5992 case 279:
5993 YY_RULE_SETUP
5994 #line 496 "util/configlexer.lex"
5995 { YDVAR(1, VAR_DNSTAP_IDENTITY) }
5996 	YY_BREAK
5997 case 280:
5998 YY_RULE_SETUP
5999 #line 497 "util/configlexer.lex"
6000 { YDVAR(1, VAR_DNSTAP_VERSION) }
6001 	YY_BREAK
6002 case 281:
6003 YY_RULE_SETUP
6004 #line 498 "util/configlexer.lex"
6005 {
6006 		YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
6007 	YY_BREAK
6008 case 282:
6009 YY_RULE_SETUP
6010 #line 500 "util/configlexer.lex"
6011 {
6012 		YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
6013 	YY_BREAK
6014 case 283:
6015 YY_RULE_SETUP
6016 #line 502 "util/configlexer.lex"
6017 {
6018 		YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
6019 	YY_BREAK
6020 case 284:
6021 YY_RULE_SETUP
6022 #line 504 "util/configlexer.lex"
6023 {
6024 		YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
6025 	YY_BREAK
6026 case 285:
6027 YY_RULE_SETUP
6028 #line 506 "util/configlexer.lex"
6029 {
6030 		YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
6031 	YY_BREAK
6032 case 286:
6033 YY_RULE_SETUP
6034 #line 508 "util/configlexer.lex"
6035 {
6036 		YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
6037 	YY_BREAK
6038 case 287:
6039 YY_RULE_SETUP
6040 #line 510 "util/configlexer.lex"
6041 { YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
6042 	YY_BREAK
6043 case 288:
6044 YY_RULE_SETUP
6045 #line 511 "util/configlexer.lex"
6046 { YDVAR(1, VAR_IP_RATELIMIT) }
6047 	YY_BREAK
6048 case 289:
6049 YY_RULE_SETUP
6050 #line 512 "util/configlexer.lex"
6051 { YDVAR(1, VAR_IP_RATELIMIT_COOKIE) }
6052 	YY_BREAK
6053 case 290:
6054 YY_RULE_SETUP
6055 #line 513 "util/configlexer.lex"
6056 { YDVAR(1, VAR_RATELIMIT) }
6057 	YY_BREAK
6058 case 291:
6059 YY_RULE_SETUP
6060 #line 514 "util/configlexer.lex"
6061 { YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
6062 	YY_BREAK
6063 case 292:
6064 YY_RULE_SETUP
6065 #line 515 "util/configlexer.lex"
6066 { YDVAR(1, VAR_RATELIMIT_SLABS) }
6067 	YY_BREAK
6068 case 293:
6069 YY_RULE_SETUP
6070 #line 516 "util/configlexer.lex"
6071 { YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
6072 	YY_BREAK
6073 case 294:
6074 YY_RULE_SETUP
6075 #line 517 "util/configlexer.lex"
6076 { YDVAR(1, VAR_RATELIMIT_SIZE) }
6077 	YY_BREAK
6078 case 295:
6079 YY_RULE_SETUP
6080 #line 518 "util/configlexer.lex"
6081 { YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
6082 	YY_BREAK
6083 case 296:
6084 YY_RULE_SETUP
6085 #line 519 "util/configlexer.lex"
6086 { YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
6087 	YY_BREAK
6088 case 297:
6089 YY_RULE_SETUP
6090 #line 520 "util/configlexer.lex"
6091 { YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
6092 	YY_BREAK
6093 case 298:
6094 YY_RULE_SETUP
6095 #line 521 "util/configlexer.lex"
6096 { YDVAR(1, VAR_RATELIMIT_FACTOR) }
6097 	YY_BREAK
6098 case 299:
6099 YY_RULE_SETUP
6100 #line 522 "util/configlexer.lex"
6101 { YDVAR(1, VAR_IP_RATELIMIT_BACKOFF) }
6102 	YY_BREAK
6103 case 300:
6104 YY_RULE_SETUP
6105 #line 523 "util/configlexer.lex"
6106 { YDVAR(1, VAR_RATELIMIT_BACKOFF) }
6107 	YY_BREAK
6108 case 301:
6109 YY_RULE_SETUP
6110 #line 524 "util/configlexer.lex"
6111 { YDVAR(1, VAR_OUTBOUND_MSG_RETRY) }
6112 	YY_BREAK
6113 case 302:
6114 YY_RULE_SETUP
6115 #line 525 "util/configlexer.lex"
6116 { YDVAR(1, VAR_MAX_SENT_COUNT) }
6117 	YY_BREAK
6118 case 303:
6119 YY_RULE_SETUP
6120 #line 526 "util/configlexer.lex"
6121 { YDVAR(1, VAR_MAX_QUERY_RESTARTS) }
6122 	YY_BREAK
6123 case 304:
6124 YY_RULE_SETUP
6125 #line 527 "util/configlexer.lex"
6126 { YDVAR(1, VAR_LOW_RTT) }
6127 	YY_BREAK
6128 case 305:
6129 YY_RULE_SETUP
6130 #line 528 "util/configlexer.lex"
6131 { YDVAR(1, VAR_FAST_SERVER_NUM) }
6132 	YY_BREAK
6133 case 306:
6134 YY_RULE_SETUP
6135 #line 529 "util/configlexer.lex"
6136 { YDVAR(1, VAR_FAST_SERVER_PERMIL) }
6137 	YY_BREAK
6138 case 307:
6139 YY_RULE_SETUP
6140 #line 530 "util/configlexer.lex"
6141 { YDVAR(1, VAR_FAST_SERVER_PERMIL) }
6142 	YY_BREAK
6143 case 308:
6144 YY_RULE_SETUP
6145 #line 531 "util/configlexer.lex"
6146 { YDVAR(1, VAR_FAST_SERVER_PERMIL) }
6147 	YY_BREAK
6148 case 309:
6149 YY_RULE_SETUP
6150 #line 532 "util/configlexer.lex"
6151 { YDVAR(2, VAR_RESPONSE_IP_TAG) }
6152 	YY_BREAK
6153 case 310:
6154 YY_RULE_SETUP
6155 #line 533 "util/configlexer.lex"
6156 { YDVAR(2, VAR_RESPONSE_IP) }
6157 	YY_BREAK
6158 case 311:
6159 YY_RULE_SETUP
6160 #line 534 "util/configlexer.lex"
6161 { YDVAR(2, VAR_RESPONSE_IP_DATA) }
6162 	YY_BREAK
6163 case 312:
6164 YY_RULE_SETUP
6165 #line 535 "util/configlexer.lex"
6166 { YDVAR(0, VAR_DNSCRYPT) }
6167 	YY_BREAK
6168 case 313:
6169 YY_RULE_SETUP
6170 #line 536 "util/configlexer.lex"
6171 { YDVAR(1, VAR_DNSCRYPT_ENABLE) }
6172 	YY_BREAK
6173 case 314:
6174 YY_RULE_SETUP
6175 #line 537 "util/configlexer.lex"
6176 { YDVAR(1, VAR_DNSCRYPT_PORT) }
6177 	YY_BREAK
6178 case 315:
6179 YY_RULE_SETUP
6180 #line 538 "util/configlexer.lex"
6181 { YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
6182 	YY_BREAK
6183 case 316:
6184 YY_RULE_SETUP
6185 #line 539 "util/configlexer.lex"
6186 { YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
6187 	YY_BREAK
6188 case 317:
6189 YY_RULE_SETUP
6190 #line 540 "util/configlexer.lex"
6191 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
6192 	YY_BREAK
6193 case 318:
6194 YY_RULE_SETUP
6195 #line 541 "util/configlexer.lex"
6196 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
6197 	YY_BREAK
6198 case 319:
6199 YY_RULE_SETUP
6200 #line 542 "util/configlexer.lex"
6201 {
6202 		YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
6203 	YY_BREAK
6204 case 320:
6205 YY_RULE_SETUP
6206 #line 544 "util/configlexer.lex"
6207 {
6208 		YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
6209 	YY_BREAK
6210 case 321:
6211 YY_RULE_SETUP
6212 #line 546 "util/configlexer.lex"
6213 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
6214 	YY_BREAK
6215 case 322:
6216 YY_RULE_SETUP
6217 #line 547 "util/configlexer.lex"
6218 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
6219 	YY_BREAK
6220 case 323:
6221 YY_RULE_SETUP
6222 #line 548 "util/configlexer.lex"
6223 { YDVAR(1, VAR_PAD_RESPONSES) }
6224 	YY_BREAK
6225 case 324:
6226 YY_RULE_SETUP
6227 #line 549 "util/configlexer.lex"
6228 { YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) }
6229 	YY_BREAK
6230 case 325:
6231 YY_RULE_SETUP
6232 #line 550 "util/configlexer.lex"
6233 { YDVAR(1, VAR_PAD_QUERIES) }
6234 	YY_BREAK
6235 case 326:
6236 YY_RULE_SETUP
6237 #line 551 "util/configlexer.lex"
6238 { YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) }
6239 	YY_BREAK
6240 case 327:
6241 YY_RULE_SETUP
6242 #line 552 "util/configlexer.lex"
6243 { YDVAR(1, VAR_IPSECMOD_ENABLED) }
6244 	YY_BREAK
6245 case 328:
6246 YY_RULE_SETUP
6247 #line 553 "util/configlexer.lex"
6248 { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
6249 	YY_BREAK
6250 case 329:
6251 YY_RULE_SETUP
6252 #line 554 "util/configlexer.lex"
6253 { YDVAR(1, VAR_IPSECMOD_HOOK) }
6254 	YY_BREAK
6255 case 330:
6256 YY_RULE_SETUP
6257 #line 555 "util/configlexer.lex"
6258 { YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
6259 	YY_BREAK
6260 case 331:
6261 YY_RULE_SETUP
6262 #line 556 "util/configlexer.lex"
6263 { YDVAR(1, VAR_IPSECMOD_WHITELIST) }
6264 	YY_BREAK
6265 case 332:
6266 YY_RULE_SETUP
6267 #line 557 "util/configlexer.lex"
6268 { YDVAR(1, VAR_IPSECMOD_WHITELIST) }
6269 	YY_BREAK
6270 case 333:
6271 YY_RULE_SETUP
6272 #line 558 "util/configlexer.lex"
6273 { YDVAR(1, VAR_IPSECMOD_STRICT) }
6274 	YY_BREAK
6275 case 334:
6276 YY_RULE_SETUP
6277 #line 559 "util/configlexer.lex"
6278 { YDVAR(0, VAR_CACHEDB) }
6279 	YY_BREAK
6280 case 335:
6281 YY_RULE_SETUP
6282 #line 560 "util/configlexer.lex"
6283 { YDVAR(1, VAR_CACHEDB_BACKEND) }
6284 	YY_BREAK
6285 case 336:
6286 YY_RULE_SETUP
6287 #line 561 "util/configlexer.lex"
6288 { YDVAR(1, VAR_CACHEDB_SECRETSEED) }
6289 	YY_BREAK
6290 case 337:
6291 YY_RULE_SETUP
6292 #line 562 "util/configlexer.lex"
6293 { YDVAR(1, VAR_CACHEDB_NO_STORE) }
6294 	YY_BREAK
6295 case 338:
6296 YY_RULE_SETUP
6297 #line 563 "util/configlexer.lex"
6298 { YDVAR(1, VAR_CACHEDB_REDISHOST) }
6299 	YY_BREAK
6300 case 339:
6301 YY_RULE_SETUP
6302 #line 564 "util/configlexer.lex"
6303 { YDVAR(1, VAR_CACHEDB_REDISPORT) }
6304 	YY_BREAK
6305 case 340:
6306 YY_RULE_SETUP
6307 #line 565 "util/configlexer.lex"
6308 { YDVAR(1, VAR_CACHEDB_REDISPATH) }
6309 	YY_BREAK
6310 case 341:
6311 YY_RULE_SETUP
6312 #line 566 "util/configlexer.lex"
6313 { YDVAR(1, VAR_CACHEDB_REDISPASSWORD) }
6314 	YY_BREAK
6315 case 342:
6316 YY_RULE_SETUP
6317 #line 567 "util/configlexer.lex"
6318 { YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
6319 	YY_BREAK
6320 case 343:
6321 YY_RULE_SETUP
6322 #line 568 "util/configlexer.lex"
6323 { YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) }
6324 	YY_BREAK
6325 case 344:
6326 YY_RULE_SETUP
6327 #line 569 "util/configlexer.lex"
6328 { YDVAR(1, VAR_CACHEDB_REDISLOGICALDB) }
6329 	YY_BREAK
6330 case 345:
6331 YY_RULE_SETUP
6332 #line 570 "util/configlexer.lex"
6333 { YDVAR(0, VAR_IPSET) }
6334 	YY_BREAK
6335 case 346:
6336 YY_RULE_SETUP
6337 #line 571 "util/configlexer.lex"
6338 { YDVAR(1, VAR_IPSET_NAME_V4) }
6339 	YY_BREAK
6340 case 347:
6341 YY_RULE_SETUP
6342 #line 572 "util/configlexer.lex"
6343 { YDVAR(1, VAR_IPSET_NAME_V6) }
6344 	YY_BREAK
6345 case 348:
6346 YY_RULE_SETUP
6347 #line 573 "util/configlexer.lex"
6348 { YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
6349 	YY_BREAK
6350 case 349:
6351 YY_RULE_SETUP
6352 #line 574 "util/configlexer.lex"
6353 { YDVAR(2, VAR_TCP_CONNECTION_LIMIT) }
6354 	YY_BREAK
6355 case 350:
6356 YY_RULE_SETUP
6357 #line 575 "util/configlexer.lex"
6358 { YDVAR(1, VAR_ANSWER_COOKIE ) }
6359 	YY_BREAK
6360 case 351:
6361 YY_RULE_SETUP
6362 #line 576 "util/configlexer.lex"
6363 { YDVAR(1, VAR_COOKIE_SECRET) }
6364 	YY_BREAK
6365 case 352:
6366 YY_RULE_SETUP
6367 #line 577 "util/configlexer.lex"
6368 { YDVAR(2, VAR_EDNS_CLIENT_STRING) }
6369 	YY_BREAK
6370 case 353:
6371 YY_RULE_SETUP
6372 #line 578 "util/configlexer.lex"
6373 { YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) }
6374 	YY_BREAK
6375 case 354:
6376 YY_RULE_SETUP
6377 #line 579 "util/configlexer.lex"
6378 { YDVAR(1, VAR_NSID ) }
6379 	YY_BREAK
6380 case 355:
6381 YY_RULE_SETUP
6382 #line 580 "util/configlexer.lex"
6383 { YDVAR(1, VAR_EDE ) }
6384 	YY_BREAK
6385 case 356:
6386 YY_RULE_SETUP
6387 #line 581 "util/configlexer.lex"
6388 { YDVAR(1, VAR_PROXY_PROTOCOL_PORT) }
6389 	YY_BREAK
6390 case 357:
6391 /* rule 357 can match eol */
6392 YY_RULE_SETUP
6393 #line 582 "util/configlexer.lex"
6394 { LEXOUT(("NL\n")); cfg_parser->line++; }
6395 	YY_BREAK
6396 /* Quoted strings. Strip leading and ending quotes */
6397 case 358:
6398 YY_RULE_SETUP
6399 #line 585 "util/configlexer.lex"
6400 { BEGIN(quotedstring); LEXOUT(("QS ")); }
6401 	YY_BREAK
6402 case YY_STATE_EOF(quotedstring):
6403 #line 586 "util/configlexer.lex"
6404 {
6405         yyerror("EOF inside quoted string");
6406 	if(--num_args == 0) { BEGIN(INITIAL); }
6407 	else		    { BEGIN(val); }
6408 }
6409 	YY_BREAK
6410 case 359:
6411 YY_RULE_SETUP
6412 #line 591 "util/configlexer.lex"
6413 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
6414 	YY_BREAK
6415 case 360:
6416 /* rule 360 can match eol */
6417 YY_RULE_SETUP
6418 #line 592 "util/configlexer.lex"
6419 { yyerror("newline inside quoted string, no end \"");
6420 			  cfg_parser->line++; BEGIN(INITIAL); }
6421 	YY_BREAK
6422 case 361:
6423 YY_RULE_SETUP
6424 #line 594 "util/configlexer.lex"
6425 {
6426         LEXOUT(("QE "));
6427 	if(--num_args == 0) { BEGIN(INITIAL); }
6428 	else		    { BEGIN(val); }
6429         yytext[yyleng - 1] = '\0';
6430 	yylval.str = strdup(yytext);
6431 	if(!yylval.str)
6432 		yyerror("out of memory");
6433         return STRING_ARG;
6434 }
6435 	YY_BREAK
6436 /* Single Quoted strings. Strip leading and ending quotes */
6437 case 362:
6438 YY_RULE_SETUP
6439 #line 606 "util/configlexer.lex"
6440 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
6441 	YY_BREAK
6442 case YY_STATE_EOF(singlequotedstr):
6443 #line 607 "util/configlexer.lex"
6444 {
6445         yyerror("EOF inside quoted string");
6446 	if(--num_args == 0) { BEGIN(INITIAL); }
6447 	else		    { BEGIN(val); }
6448 }
6449 	YY_BREAK
6450 case 363:
6451 YY_RULE_SETUP
6452 #line 612 "util/configlexer.lex"
6453 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
6454 	YY_BREAK
6455 case 364:
6456 /* rule 364 can match eol */
6457 YY_RULE_SETUP
6458 #line 613 "util/configlexer.lex"
6459 { yyerror("newline inside quoted string, no end '");
6460 			     cfg_parser->line++; BEGIN(INITIAL); }
6461 	YY_BREAK
6462 case 365:
6463 YY_RULE_SETUP
6464 #line 615 "util/configlexer.lex"
6465 {
6466         LEXOUT(("SQE "));
6467 	if(--num_args == 0) { BEGIN(INITIAL); }
6468 	else		    { BEGIN(val); }
6469         yytext[yyleng - 1] = '\0';
6470 	yylval.str = strdup(yytext);
6471 	if(!yylval.str)
6472 		yyerror("out of memory");
6473         return STRING_ARG;
6474 }
6475 	YY_BREAK
6476 /* include: directive */
6477 case 366:
6478 YY_RULE_SETUP
6479 #line 627 "util/configlexer.lex"
6480 {
6481 	LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
6482 	YY_BREAK
6483 case YY_STATE_EOF(include):
6484 #line 629 "util/configlexer.lex"
6485 {
6486         yyerror("EOF inside include directive");
6487         BEGIN(inc_prev);
6488 }
6489 	YY_BREAK
6490 case 367:
6491 YY_RULE_SETUP
6492 #line 633 "util/configlexer.lex"
6493 { LEXOUT(("ISP ")); /* ignore */ }
6494 	YY_BREAK
6495 case 368:
6496 /* rule 368 can match eol */
6497 YY_RULE_SETUP
6498 #line 634 "util/configlexer.lex"
6499 { LEXOUT(("NL\n")); cfg_parser->line++;}
6500 	YY_BREAK
6501 case 369:
6502 YY_RULE_SETUP
6503 #line 635 "util/configlexer.lex"
6504 { LEXOUT(("IQS ")); BEGIN(include_quoted); }
6505 	YY_BREAK
6506 case 370:
6507 YY_RULE_SETUP
6508 #line 636 "util/configlexer.lex"
6509 {
6510 	LEXOUT(("Iunquotedstr(%s) ", yytext));
6511 	config_start_include_glob(yytext, 0);
6512 	BEGIN(inc_prev);
6513 }
6514 	YY_BREAK
6515 case YY_STATE_EOF(include_quoted):
6516 #line 641 "util/configlexer.lex"
6517 {
6518         yyerror("EOF inside quoted string");
6519         BEGIN(inc_prev);
6520 }
6521 	YY_BREAK
6522 case 371:
6523 YY_RULE_SETUP
6524 #line 645 "util/configlexer.lex"
6525 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
6526 	YY_BREAK
6527 case 372:
6528 /* rule 372 can match eol */
6529 YY_RULE_SETUP
6530 #line 646 "util/configlexer.lex"
6531 { yyerror("newline before \" in include name");
6532 				  cfg_parser->line++; BEGIN(inc_prev); }
6533 	YY_BREAK
6534 case 373:
6535 YY_RULE_SETUP
6536 #line 648 "util/configlexer.lex"
6537 {
6538 	LEXOUT(("IQE "));
6539 	yytext[yyleng - 1] = '\0';
6540 	config_start_include_glob(yytext, 0);
6541 	BEGIN(inc_prev);
6542 }
6543 	YY_BREAK
6544 case YY_STATE_EOF(INITIAL):
6545 case YY_STATE_EOF(val):
6546 #line 654 "util/configlexer.lex"
6547 {
6548 	LEXOUT(("LEXEOF "));
6549 	yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
6550 	if (!config_include_stack) {
6551 		yyterminate();
6552 	} else {
6553 		int prev_toplevel = inc_toplevel;
6554 		fclose(yyin);
6555 		config_end_include();
6556 		if(prev_toplevel) return (VAR_FORCE_TOPLEVEL);
6557 	}
6558 }
6559 	YY_BREAK
6560 /* include-toplevel: directive */
6561 case 374:
6562 YY_RULE_SETUP
6563 #line 668 "util/configlexer.lex"
6564 {
6565 	LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel);
6566 }
6567 	YY_BREAK
6568 case YY_STATE_EOF(include_toplevel):
6569 #line 671 "util/configlexer.lex"
6570 {
6571 	yyerror("EOF inside include_toplevel directive");
6572 	BEGIN(inc_prev);
6573 }
6574 	YY_BREAK
6575 case 375:
6576 YY_RULE_SETUP
6577 #line 675 "util/configlexer.lex"
6578 { LEXOUT(("ITSP ")); /* ignore */ }
6579 	YY_BREAK
6580 case 376:
6581 /* rule 376 can match eol */
6582 YY_RULE_SETUP
6583 #line 676 "util/configlexer.lex"
6584 { LEXOUT(("NL\n")); cfg_parser->line++; }
6585 	YY_BREAK
6586 case 377:
6587 YY_RULE_SETUP
6588 #line 677 "util/configlexer.lex"
6589 { LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); }
6590 	YY_BREAK
6591 case 378:
6592 YY_RULE_SETUP
6593 #line 678 "util/configlexer.lex"
6594 {
6595 	LEXOUT(("ITunquotedstr(%s) ", yytext));
6596 	config_start_include_glob(yytext, 1);
6597 	BEGIN(inc_prev);
6598 	return (VAR_FORCE_TOPLEVEL);
6599 }
6600 	YY_BREAK
6601 case YY_STATE_EOF(include_toplevel_quoted):
6602 #line 684 "util/configlexer.lex"
6603 {
6604 	yyerror("EOF inside quoted string");
6605 	BEGIN(inc_prev);
6606 }
6607 	YY_BREAK
6608 case 379:
6609 YY_RULE_SETUP
6610 #line 688 "util/configlexer.lex"
6611 { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); }
6612 	YY_BREAK
6613 case 380:
6614 /* rule 380 can match eol */
6615 YY_RULE_SETUP
6616 #line 689 "util/configlexer.lex"
6617 {
6618 	yyerror("newline before \" in include name");
6619 	cfg_parser->line++; BEGIN(inc_prev);
6620 }
6621 	YY_BREAK
6622 case 381:
6623 YY_RULE_SETUP
6624 #line 693 "util/configlexer.lex"
6625 {
6626 	LEXOUT(("ITQE "));
6627 	yytext[yyleng - 1] = '\0';
6628 	config_start_include_glob(yytext, 1);
6629 	BEGIN(inc_prev);
6630 	return (VAR_FORCE_TOPLEVEL);
6631 }
6632 	YY_BREAK
6633 case 382:
6634 YY_RULE_SETUP
6635 #line 701 "util/configlexer.lex"
6636 { LEXOUT(("unquotedstr(%s) ", yytext));
6637 			if(--num_args == 0) { BEGIN(INITIAL); }
6638 			yylval.str = strdup(yytext); return STRING_ARG; }
6639 	YY_BREAK
6640 case 383:
6641 YY_RULE_SETUP
6642 #line 705 "util/configlexer.lex"
6643 {
6644 	ub_c_error_msg("unknown keyword '%s'", yytext);
6645 	}
6646 	YY_BREAK
6647 case 384:
6648 YY_RULE_SETUP
6649 #line 709 "util/configlexer.lex"
6650 {
6651 	ub_c_error_msg("stray '%s'", yytext);
6652 	}
6653 	YY_BREAK
6654 case 385:
6655 YY_RULE_SETUP
6656 #line 713 "util/configlexer.lex"
6657 ECHO;
6658 	YY_BREAK
6659 #line 6657 "<stdout>"
6660 
6661 	case YY_END_OF_BUFFER:
6662 		{
6663 		/* Amount of text matched not including the EOB char. */
6664 		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
6665 
6666 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
6667 		*yy_cp = (yy_hold_char);
6668 		YY_RESTORE_YY_MORE_OFFSET
6669 
6670 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6671 			{
6672 			/* We're scanning a new file or input source.  It's
6673 			 * possible that this happened because the user
6674 			 * just pointed yyin at a new source and called
6675 			 * yylex().  If so, then we have to assure
6676 			 * consistency between YY_CURRENT_BUFFER and our
6677 			 * globals.  Here is the right place to do so, because
6678 			 * this is the first action (other than possibly a
6679 			 * back-up) that will match for the new input source.
6680 			 */
6681 			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6682 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
6683 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6684 			}
6685 
6686 		/* Note that here we test for yy_c_buf_p "<=" to the position
6687 		 * of the first EOB in the buffer, since yy_c_buf_p will
6688 		 * already have been incremented past the NUL character
6689 		 * (since all states make transitions on EOB to the
6690 		 * end-of-buffer state).  Contrast this with the test
6691 		 * in input().
6692 		 */
6693 		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6694 			{ /* This was really a NUL. */
6695 			yy_state_type yy_next_state;
6696 
6697 			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
6698 
6699 			yy_current_state = yy_get_previous_state(  );
6700 
6701 			/* Okay, we're now positioned to make the NUL
6702 			 * transition.  We couldn't have
6703 			 * yy_get_previous_state() go ahead and do it
6704 			 * for us because it doesn't know how to deal
6705 			 * with the possibility of jamming (and we don't
6706 			 * want to build jamming into it because then it
6707 			 * will run more slowly).
6708 			 */
6709 
6710 			yy_next_state = yy_try_NUL_trans( yy_current_state );
6711 
6712 			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6713 
6714 			if ( yy_next_state )
6715 				{
6716 				/* Consume the NUL. */
6717 				yy_cp = ++(yy_c_buf_p);
6718 				yy_current_state = yy_next_state;
6719 				goto yy_match;
6720 				}
6721 
6722 			else
6723 				{
6724 				yy_cp = (yy_c_buf_p);
6725 				goto yy_find_action;
6726 				}
6727 			}
6728 
6729 		else switch ( yy_get_next_buffer(  ) )
6730 			{
6731 			case EOB_ACT_END_OF_FILE:
6732 				{
6733 				(yy_did_buffer_switch_on_eof) = 0;
6734 
6735 				if ( yywrap(  ) )
6736 					{
6737 					/* Note: because we've taken care in
6738 					 * yy_get_next_buffer() to have set up
6739 					 * yytext, we can now set up
6740 					 * yy_c_buf_p so that if some total
6741 					 * hoser (like flex itself) wants to
6742 					 * call the scanner after we return the
6743 					 * YY_NULL, it'll still work - another
6744 					 * YY_NULL will get returned.
6745 					 */
6746 					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
6747 
6748 					yy_act = YY_STATE_EOF(YY_START);
6749 					goto do_action;
6750 					}
6751 
6752 				else
6753 					{
6754 					if ( ! (yy_did_buffer_switch_on_eof) )
6755 						YY_NEW_FILE;
6756 					}
6757 				break;
6758 				}
6759 
6760 			case EOB_ACT_CONTINUE_SCAN:
6761 				(yy_c_buf_p) =
6762 					(yytext_ptr) + yy_amount_of_matched_text;
6763 
6764 				yy_current_state = yy_get_previous_state(  );
6765 
6766 				yy_cp = (yy_c_buf_p);
6767 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6768 				goto yy_match;
6769 
6770 			case EOB_ACT_LAST_MATCH:
6771 				(yy_c_buf_p) =
6772 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6773 
6774 				yy_current_state = yy_get_previous_state(  );
6775 
6776 				yy_cp = (yy_c_buf_p);
6777 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6778 				goto yy_find_action;
6779 			}
6780 		break;
6781 		}
6782 
6783 	default:
6784 		YY_FATAL_ERROR(
6785 			"fatal flex scanner internal error--no action found" );
6786 	} /* end of action switch */
6787 		} /* end of scanning one token */
6788 	} /* end of user's declarations */
6789 } /* end of yylex */
6790 
6791 /* yy_get_next_buffer - try to read in a new buffer
6792  *
6793  * Returns a code representing an action:
6794  *	EOB_ACT_LAST_MATCH -
6795  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6796  *	EOB_ACT_END_OF_FILE - end of file
6797  */
yy_get_next_buffer(void)6798 static int yy_get_next_buffer (void)
6799 {
6800     	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6801 	char *source = (yytext_ptr);
6802 	int number_to_move, i;
6803 	int ret_val;
6804 
6805 	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6806 		YY_FATAL_ERROR(
6807 		"fatal flex scanner internal error--end of buffer missed" );
6808 
6809 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6810 		{ /* Don't try to fill the buffer, so this is an EOF. */
6811 		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6812 			{
6813 			/* We matched a single character, the EOB, so
6814 			 * treat this as a final EOF.
6815 			 */
6816 			return EOB_ACT_END_OF_FILE;
6817 			}
6818 
6819 		else
6820 			{
6821 			/* We matched some text prior to the EOB, first
6822 			 * process it.
6823 			 */
6824 			return EOB_ACT_LAST_MATCH;
6825 			}
6826 		}
6827 
6828 	/* Try to read more data. */
6829 
6830 	/* First move last chars to start of buffer. */
6831 	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
6832 
6833 	for ( i = 0; i < number_to_move; ++i )
6834 		*(dest++) = *(source++);
6835 
6836 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6837 		/* don't do the read, it's not guaranteed to return an EOF,
6838 		 * just force an EOF
6839 		 */
6840 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6841 
6842 	else
6843 		{
6844 			int num_to_read =
6845 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6846 
6847 		while ( num_to_read <= 0 )
6848 			{ /* Not enough room in the buffer - grow it. */
6849 
6850 			/* just a shorter name for the current buffer */
6851 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
6852 
6853 			int yy_c_buf_p_offset =
6854 				(int) ((yy_c_buf_p) - b->yy_ch_buf);
6855 
6856 			if ( b->yy_is_our_buffer )
6857 				{
6858 				int new_size = b->yy_buf_size * 2;
6859 
6860 				if ( new_size <= 0 )
6861 					b->yy_buf_size += b->yy_buf_size / 8;
6862 				else
6863 					b->yy_buf_size *= 2;
6864 
6865 				b->yy_ch_buf = (char *)
6866 					/* Include room in for 2 EOB chars. */
6867 					yyrealloc( (void *) b->yy_ch_buf,
6868 							 (yy_size_t) (b->yy_buf_size + 2)  );
6869 				}
6870 			else
6871 				/* Can't grow it, we don't own it. */
6872 				b->yy_ch_buf = NULL;
6873 
6874 			if ( ! b->yy_ch_buf )
6875 				YY_FATAL_ERROR(
6876 				"fatal error - scanner input buffer overflow" );
6877 
6878 			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6879 
6880 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6881 						number_to_move - 1;
6882 
6883 			}
6884 
6885 		if ( num_to_read > YY_READ_BUF_SIZE )
6886 			num_to_read = YY_READ_BUF_SIZE;
6887 
6888 		/* Read in more data. */
6889 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6890 			(yy_n_chars), num_to_read );
6891 
6892 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6893 		}
6894 
6895 	if ( (yy_n_chars) == 0 )
6896 		{
6897 		if ( number_to_move == YY_MORE_ADJ )
6898 			{
6899 			ret_val = EOB_ACT_END_OF_FILE;
6900 			yyrestart( yyin  );
6901 			}
6902 
6903 		else
6904 			{
6905 			ret_val = EOB_ACT_LAST_MATCH;
6906 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6907 				YY_BUFFER_EOF_PENDING;
6908 			}
6909 		}
6910 
6911 	else
6912 		ret_val = EOB_ACT_CONTINUE_SCAN;
6913 
6914 	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6915 		/* Extend the array by 50%, plus the number we really need. */
6916 		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6917 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
6918 			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
6919 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6920 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6921 		/* "- 2" to take care of EOB's */
6922 		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
6923 	}
6924 
6925 	(yy_n_chars) += number_to_move;
6926 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6927 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6928 
6929 	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6930 
6931 	return ret_val;
6932 }
6933 
6934 /* yy_get_previous_state - get the state just before the EOB char was reached */
6935 
yy_get_previous_state(void)6936     static yy_state_type yy_get_previous_state (void)
6937 {
6938 	yy_state_type yy_current_state;
6939 	char *yy_cp;
6940 
6941 	yy_current_state = (yy_start);
6942 
6943 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6944 		{
6945 		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6946 		if ( yy_accept[yy_current_state] )
6947 			{
6948 			(yy_last_accepting_state) = yy_current_state;
6949 			(yy_last_accepting_cpos) = yy_cp;
6950 			}
6951 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6952 			{
6953 			yy_current_state = (int) yy_def[yy_current_state];
6954 			if ( yy_current_state >= 3816 )
6955 				yy_c = yy_meta[yy_c];
6956 			}
6957 		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6958 		}
6959 
6960 	return yy_current_state;
6961 }
6962 
6963 /* yy_try_NUL_trans - try to make a transition on the NUL character
6964  *
6965  * synopsis
6966  *	next_state = yy_try_NUL_trans( current_state );
6967  */
yy_try_NUL_trans(yy_state_type yy_current_state)6968     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
6969 {
6970 	int yy_is_jam;
6971     	char *yy_cp = (yy_c_buf_p);
6972 
6973 	YY_CHAR yy_c = 1;
6974 	if ( yy_accept[yy_current_state] )
6975 		{
6976 		(yy_last_accepting_state) = yy_current_state;
6977 		(yy_last_accepting_cpos) = yy_cp;
6978 		}
6979 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6980 		{
6981 		yy_current_state = (int) yy_def[yy_current_state];
6982 		if ( yy_current_state >= 3816 )
6983 			yy_c = yy_meta[yy_c];
6984 		}
6985 	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6986 	yy_is_jam = (yy_current_state == 3815);
6987 
6988 		return yy_is_jam ? 0 : yy_current_state;
6989 }
6990 
6991 #ifndef YY_NO_UNPUT
6992 
6993 #endif
6994 
6995 #ifndef YY_NO_INPUT
6996 #ifdef __cplusplus
yyinput(void)6997     static int yyinput (void)
6998 #else
6999     static int input  (void)
7000 #endif
7001 
7002 {
7003 	int c;
7004 
7005 	*(yy_c_buf_p) = (yy_hold_char);
7006 
7007 	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
7008 		{
7009 		/* yy_c_buf_p now points to the character we want to return.
7010 		 * If this occurs *before* the EOB characters, then it's a
7011 		 * valid NUL; if not, then we've hit the end of the buffer.
7012 		 */
7013 		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
7014 			/* This was really a NUL. */
7015 			*(yy_c_buf_p) = '\0';
7016 
7017 		else
7018 			{ /* need more input */
7019 			int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
7020 			++(yy_c_buf_p);
7021 
7022 			switch ( yy_get_next_buffer(  ) )
7023 				{
7024 				case EOB_ACT_LAST_MATCH:
7025 					/* This happens because yy_g_n_b()
7026 					 * sees that we've accumulated a
7027 					 * token and flags that we need to
7028 					 * try matching the token before
7029 					 * proceeding.  But for input(),
7030 					 * there's no matching to consider.
7031 					 * So convert the EOB_ACT_LAST_MATCH
7032 					 * to EOB_ACT_END_OF_FILE.
7033 					 */
7034 
7035 					/* Reset buffer status. */
7036 					yyrestart( yyin );
7037 
7038 					/*FALLTHROUGH*/
7039 
7040 				case EOB_ACT_END_OF_FILE:
7041 					{
7042 					if ( yywrap(  ) )
7043 						return 0;
7044 
7045 					if ( ! (yy_did_buffer_switch_on_eof) )
7046 						YY_NEW_FILE;
7047 #ifdef __cplusplus
7048 					return yyinput();
7049 #else
7050 					return input();
7051 #endif
7052 					}
7053 
7054 				case EOB_ACT_CONTINUE_SCAN:
7055 					(yy_c_buf_p) = (yytext_ptr) + offset;
7056 					break;
7057 				}
7058 			}
7059 		}
7060 
7061 	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
7062 	*(yy_c_buf_p) = '\0';	/* preserve yytext */
7063 	(yy_hold_char) = *++(yy_c_buf_p);
7064 
7065 	return c;
7066 }
7067 #endif	/* ifndef YY_NO_INPUT */
7068 
7069 /** Immediately switch to a different input stream.
7070  * @param input_file A readable stream.
7071  *
7072  * @note This function does not reset the start condition to @c INITIAL .
7073  */
yyrestart(FILE * input_file)7074     void yyrestart  (FILE * input_file )
7075 {
7076 
7077 	if ( ! YY_CURRENT_BUFFER ){
7078         yyensure_buffer_stack ();
7079 		YY_CURRENT_BUFFER_LVALUE =
7080             yy_create_buffer( yyin, YY_BUF_SIZE );
7081 	}
7082 
7083 	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
7084 	yy_load_buffer_state(  );
7085 }
7086 
7087 /** Switch to a different input buffer.
7088  * @param new_buffer The new input buffer.
7089  *
7090  */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)7091     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
7092 {
7093 
7094 	/* TODO. We should be able to replace this entire function body
7095 	 * with
7096 	 *		yypop_buffer_state();
7097 	 *		yypush_buffer_state(new_buffer);
7098      */
7099 	yyensure_buffer_stack ();
7100 	if ( YY_CURRENT_BUFFER == new_buffer )
7101 		return;
7102 
7103 	if ( YY_CURRENT_BUFFER )
7104 		{
7105 		/* Flush out information for old buffer. */
7106 		*(yy_c_buf_p) = (yy_hold_char);
7107 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
7108 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
7109 		}
7110 
7111 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
7112 	yy_load_buffer_state(  );
7113 
7114 	/* We don't actually know whether we did this switch during
7115 	 * EOF (yywrap()) processing, but the only time this flag
7116 	 * is looked at is after yywrap() is called, so it's safe
7117 	 * to go ahead and always set it.
7118 	 */
7119 	(yy_did_buffer_switch_on_eof) = 1;
7120 }
7121 
yy_load_buffer_state(void)7122 static void yy_load_buffer_state  (void)
7123 {
7124     	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
7125 	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
7126 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
7127 	(yy_hold_char) = *(yy_c_buf_p);
7128 }
7129 
7130 /** Allocate and initialize an input buffer state.
7131  * @param file A readable stream.
7132  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
7133  *
7134  * @return the allocated buffer state.
7135  */
yy_create_buffer(FILE * file,int size)7136     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
7137 {
7138 	YY_BUFFER_STATE b;
7139 
7140 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
7141 	if ( ! b )
7142 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
7143 
7144 	b->yy_buf_size = size;
7145 
7146 	/* yy_ch_buf has to be 2 characters longer than the size given because
7147 	 * we need to put in 2 end-of-buffer characters.
7148 	 */
7149 	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
7150 	if ( ! b->yy_ch_buf )
7151 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
7152 
7153 	b->yy_is_our_buffer = 1;
7154 
7155 	yy_init_buffer( b, file );
7156 
7157 	return b;
7158 }
7159 
7160 /** Destroy the buffer.
7161  * @param b a buffer created with yy_create_buffer()
7162  *
7163  */
yy_delete_buffer(YY_BUFFER_STATE b)7164     void yy_delete_buffer (YY_BUFFER_STATE  b )
7165 {
7166 
7167 	if ( ! b )
7168 		return;
7169 
7170 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
7171 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
7172 
7173 	if ( b->yy_is_our_buffer )
7174 		yyfree( (void *) b->yy_ch_buf  );
7175 
7176 	yyfree( (void *) b  );
7177 }
7178 
7179 /* Initializes or reinitializes a buffer.
7180  * This function is sometimes called more than once on the same buffer,
7181  * such as during a yyrestart() or at EOF.
7182  */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file)7183     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
7184 
7185 {
7186 	int oerrno = errno;
7187 
7188 	yy_flush_buffer( b );
7189 
7190 	b->yy_input_file = file;
7191 	b->yy_fill_buffer = 1;
7192 
7193     /* If b is the current buffer, then yy_init_buffer was _probably_
7194      * called from yyrestart() or through yy_get_next_buffer.
7195      * In that case, we don't want to reset the lineno or column.
7196      */
7197     if (b != YY_CURRENT_BUFFER){
7198         b->yy_bs_lineno = 1;
7199         b->yy_bs_column = 0;
7200     }
7201 
7202         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
7203 
7204 	errno = oerrno;
7205 }
7206 
7207 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
7208  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
7209  *
7210  */
yy_flush_buffer(YY_BUFFER_STATE b)7211     void yy_flush_buffer (YY_BUFFER_STATE  b )
7212 {
7213     	if ( ! b )
7214 		return;
7215 
7216 	b->yy_n_chars = 0;
7217 
7218 	/* We always need two end-of-buffer characters.  The first causes
7219 	 * a transition to the end-of-buffer state.  The second causes
7220 	 * a jam in that state.
7221 	 */
7222 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
7223 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
7224 
7225 	b->yy_buf_pos = &b->yy_ch_buf[0];
7226 
7227 	b->yy_at_bol = 1;
7228 	b->yy_buffer_status = YY_BUFFER_NEW;
7229 
7230 	if ( b == YY_CURRENT_BUFFER )
7231 		yy_load_buffer_state(  );
7232 }
7233 
7234 /** Pushes the new state onto the stack. The new state becomes
7235  *  the current state. This function will allocate the stack
7236  *  if necessary.
7237  *  @param new_buffer The new state.
7238  *
7239  */
yypush_buffer_state(YY_BUFFER_STATE new_buffer)7240 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
7241 {
7242     	if (new_buffer == NULL)
7243 		return;
7244 
7245 	yyensure_buffer_stack();
7246 
7247 	/* This block is copied from yy_switch_to_buffer. */
7248 	if ( YY_CURRENT_BUFFER )
7249 		{
7250 		/* Flush out information for old buffer. */
7251 		*(yy_c_buf_p) = (yy_hold_char);
7252 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
7253 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
7254 		}
7255 
7256 	/* Only push if top exists. Otherwise, replace top. */
7257 	if (YY_CURRENT_BUFFER)
7258 		(yy_buffer_stack_top)++;
7259 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
7260 
7261 	/* copied from yy_switch_to_buffer. */
7262 	yy_load_buffer_state(  );
7263 	(yy_did_buffer_switch_on_eof) = 1;
7264 }
7265 
7266 /** Removes and deletes the top of the stack, if present.
7267  *  The next element becomes the new top.
7268  *
7269  */
yypop_buffer_state(void)7270 void yypop_buffer_state (void)
7271 {
7272     	if (!YY_CURRENT_BUFFER)
7273 		return;
7274 
7275 	yy_delete_buffer(YY_CURRENT_BUFFER );
7276 	YY_CURRENT_BUFFER_LVALUE = NULL;
7277 	if ((yy_buffer_stack_top) > 0)
7278 		--(yy_buffer_stack_top);
7279 
7280 	if (YY_CURRENT_BUFFER) {
7281 		yy_load_buffer_state(  );
7282 		(yy_did_buffer_switch_on_eof) = 1;
7283 	}
7284 }
7285 
7286 /* Allocates the stack if it does not exist.
7287  *  Guarantees space for at least one push.
7288  */
yyensure_buffer_stack(void)7289 static void yyensure_buffer_stack (void)
7290 {
7291 	yy_size_t num_to_alloc;
7292 
7293 	if (!(yy_buffer_stack)) {
7294 
7295 		/* First allocation is just for 2 elements, since we don't know if this
7296 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
7297 		 * immediate realloc on the next call.
7298          */
7299       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
7300 		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
7301 								(num_to_alloc * sizeof(struct yy_buffer_state*)
7302 								);
7303 		if ( ! (yy_buffer_stack) )
7304 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
7305 
7306 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
7307 
7308 		(yy_buffer_stack_max) = num_to_alloc;
7309 		(yy_buffer_stack_top) = 0;
7310 		return;
7311 	}
7312 
7313 	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
7314 
7315 		/* Increase the buffer to prepare for a possible push. */
7316 		yy_size_t grow_size = 8 /* arbitrary grow size */;
7317 
7318 		num_to_alloc = (yy_buffer_stack_max) + grow_size;
7319 		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
7320 								((yy_buffer_stack),
7321 								num_to_alloc * sizeof(struct yy_buffer_state*)
7322 								);
7323 		if ( ! (yy_buffer_stack) )
7324 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
7325 
7326 		/* zero only the new slots.*/
7327 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
7328 		(yy_buffer_stack_max) = num_to_alloc;
7329 	}
7330 }
7331 
7332 /** Setup the input buffer state to scan directly from a user-specified character buffer.
7333  * @param base the character buffer
7334  * @param size the size in bytes of the character buffer
7335  *
7336  * @return the newly allocated buffer state object.
7337  */
yy_scan_buffer(char * base,yy_size_t size)7338 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
7339 {
7340 	YY_BUFFER_STATE b;
7341 
7342 	if ( size < 2 ||
7343 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
7344 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
7345 		/* They forgot to leave room for the EOB's. */
7346 		return NULL;
7347 
7348 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
7349 	if ( ! b )
7350 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
7351 
7352 	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
7353 	b->yy_buf_pos = b->yy_ch_buf = base;
7354 	b->yy_is_our_buffer = 0;
7355 	b->yy_input_file = NULL;
7356 	b->yy_n_chars = b->yy_buf_size;
7357 	b->yy_is_interactive = 0;
7358 	b->yy_at_bol = 1;
7359 	b->yy_fill_buffer = 0;
7360 	b->yy_buffer_status = YY_BUFFER_NEW;
7361 
7362 	yy_switch_to_buffer( b  );
7363 
7364 	return b;
7365 }
7366 
7367 /** Setup the input buffer state to scan a string. The next call to yylex() will
7368  * scan from a @e copy of @a str.
7369  * @param yystr a NUL-terminated string to scan
7370  *
7371  * @return the newly allocated buffer state object.
7372  * @note If you want to scan bytes that may contain NUL values, then use
7373  *       yy_scan_bytes() instead.
7374  */
yy_scan_string(const char * yystr)7375 YY_BUFFER_STATE yy_scan_string (const char * yystr )
7376 {
7377 
7378 	return yy_scan_bytes( yystr, (int) strlen(yystr) );
7379 }
7380 
7381 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
7382  * scan from a @e copy of @a bytes.
7383  * @param yybytes the byte buffer to scan
7384  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
7385  *
7386  * @return the newly allocated buffer state object.
7387  */
yy_scan_bytes(const char * yybytes,int _yybytes_len)7388 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
7389 {
7390 	YY_BUFFER_STATE b;
7391 	char *buf;
7392 	yy_size_t n;
7393 	int i;
7394 
7395 	/* Get memory for full buffer, including space for trailing EOB's. */
7396 	n = (yy_size_t) (_yybytes_len + 2);
7397 	buf = (char *) yyalloc( n  );
7398 	if ( ! buf )
7399 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
7400 
7401 	for ( i = 0; i < _yybytes_len; ++i )
7402 		buf[i] = yybytes[i];
7403 
7404 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
7405 
7406 	b = yy_scan_buffer( buf, n );
7407 	if ( ! b )
7408 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
7409 
7410 	/* It's okay to grow etc. this buffer, and we should throw it
7411 	 * away when we're done.
7412 	 */
7413 	b->yy_is_our_buffer = 1;
7414 
7415 	return b;
7416 }
7417 
7418 #ifndef YY_EXIT_FAILURE
7419 #define YY_EXIT_FAILURE 2
7420 #endif
7421 
yy_fatal_error(const char * msg)7422 static void yynoreturn yy_fatal_error (const char* msg )
7423 {
7424 			fprintf( stderr, "%s\n", msg );
7425 	exit( YY_EXIT_FAILURE );
7426 }
7427 
7428 /* Redefine yyless() so it works in section 3 code. */
7429 
7430 #undef yyless
7431 #define yyless(n) \
7432 	do \
7433 		{ \
7434 		/* Undo effects of setting up yytext. */ \
7435         int yyless_macro_arg = (n); \
7436         YY_LESS_LINENO(yyless_macro_arg);\
7437 		yytext[yyleng] = (yy_hold_char); \
7438 		(yy_c_buf_p) = yytext + yyless_macro_arg; \
7439 		(yy_hold_char) = *(yy_c_buf_p); \
7440 		*(yy_c_buf_p) = '\0'; \
7441 		yyleng = yyless_macro_arg; \
7442 		} \
7443 	while ( 0 )
7444 
7445 /* Accessor  methods (get/set functions) to struct members. */
7446 
7447 /** Get the current line number.
7448  *
7449  */
yyget_lineno(void)7450 int yyget_lineno  (void)
7451 {
7452 
7453     return yylineno;
7454 }
7455 
7456 /** Get the input stream.
7457  *
7458  */
yyget_in(void)7459 FILE *yyget_in  (void)
7460 {
7461         return yyin;
7462 }
7463 
7464 /** Get the output stream.
7465  *
7466  */
yyget_out(void)7467 FILE *yyget_out  (void)
7468 {
7469         return yyout;
7470 }
7471 
7472 /** Get the length of the current token.
7473  *
7474  */
yyget_leng(void)7475 int yyget_leng  (void)
7476 {
7477         return yyleng;
7478 }
7479 
7480 /** Get the current token.
7481  *
7482  */
7483 
yyget_text(void)7484 char *yyget_text  (void)
7485 {
7486         return yytext;
7487 }
7488 
7489 /** Set the current line number.
7490  * @param _line_number line number
7491  *
7492  */
yyset_lineno(int _line_number)7493 void yyset_lineno (int  _line_number )
7494 {
7495 
7496     yylineno = _line_number;
7497 }
7498 
7499 /** Set the input stream. This does not discard the current
7500  * input buffer.
7501  * @param _in_str A readable stream.
7502  *
7503  * @see yy_switch_to_buffer
7504  */
yyset_in(FILE * _in_str)7505 void yyset_in (FILE *  _in_str )
7506 {
7507         yyin = _in_str ;
7508 }
7509 
yyset_out(FILE * _out_str)7510 void yyset_out (FILE *  _out_str )
7511 {
7512         yyout = _out_str ;
7513 }
7514 
yyget_debug(void)7515 int yyget_debug  (void)
7516 {
7517         return yy_flex_debug;
7518 }
7519 
yyset_debug(int _bdebug)7520 void yyset_debug (int  _bdebug )
7521 {
7522         yy_flex_debug = _bdebug ;
7523 }
7524 
yy_init_globals(void)7525 static int yy_init_globals (void)
7526 {
7527         /* Initialization is the same as for the non-reentrant scanner.
7528      * This function is called from yylex_destroy(), so don't allocate here.
7529      */
7530 
7531     (yy_buffer_stack) = NULL;
7532     (yy_buffer_stack_top) = 0;
7533     (yy_buffer_stack_max) = 0;
7534     (yy_c_buf_p) = NULL;
7535     (yy_init) = 0;
7536     (yy_start) = 0;
7537 
7538 /* Defined in main.c */
7539 #ifdef YY_STDINIT
7540     yyin = stdin;
7541     yyout = stdout;
7542 #else
7543     yyin = NULL;
7544     yyout = NULL;
7545 #endif
7546 
7547     /* For future reference: Set errno on error, since we are called by
7548      * yylex_init()
7549      */
7550     return 0;
7551 }
7552 
7553 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(void)7554 int yylex_destroy  (void)
7555 {
7556 
7557     /* Pop the buffer stack, destroying each element. */
7558 	while(YY_CURRENT_BUFFER){
7559 		yy_delete_buffer( YY_CURRENT_BUFFER  );
7560 		YY_CURRENT_BUFFER_LVALUE = NULL;
7561 		yypop_buffer_state();
7562 	}
7563 
7564 	/* Destroy the stack itself. */
7565 	yyfree((yy_buffer_stack) );
7566 	(yy_buffer_stack) = NULL;
7567 
7568     /* Reset the globals. This is important in a non-reentrant scanner so the next time
7569      * yylex() is called, initialization will occur. */
7570     yy_init_globals( );
7571 
7572     return 0;
7573 }
7574 
7575 /*
7576  * Internal utility routines.
7577  */
7578 
7579 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,const char * s2,int n)7580 static void yy_flex_strncpy (char* s1, const char * s2, int n )
7581 {
7582 
7583 	int i;
7584 	for ( i = 0; i < n; ++i )
7585 		s1[i] = s2[i];
7586 }
7587 #endif
7588 
7589 #ifdef YY_NEED_STRLEN
yy_flex_strlen(const char * s)7590 static int yy_flex_strlen (const char * s )
7591 {
7592 	int n;
7593 	for ( n = 0; s[n]; ++n )
7594 		;
7595 
7596 	return n;
7597 }
7598 #endif
7599 
yyalloc(yy_size_t size)7600 void *yyalloc (yy_size_t  size )
7601 {
7602 			return malloc(size);
7603 }
7604 
yyrealloc(void * ptr,yy_size_t size)7605 void *yyrealloc  (void * ptr, yy_size_t  size )
7606 {
7607 
7608 	/* The cast to (char *) in the following accommodates both
7609 	 * implementations that use char* generic pointers, and those
7610 	 * that use void* generic pointers.  It works with the latter
7611 	 * because both ANSI C and C++ allow castless assignment from
7612 	 * any pointer type to void*, and deal with argument conversions
7613 	 * as though doing an assignment.
7614 	 */
7615 	return realloc(ptr, size);
7616 }
7617 
yyfree(void * ptr)7618 void yyfree (void * ptr )
7619 {
7620 			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
7621 }
7622 
7623 #define YYTABLES_NAME "yytables"
7624 
7625 #line 713 "util/configlexer.lex"
7626 
7627 
7628