build: scripts/config - update to kconfig-v5.6
[oweals/openwrt.git] / scripts / config / lexer.lex.c
1
2 #define  YY_INT_ALIGNED short int
3
4 /* A lexical scanner generated by flex */
5
6 #define FLEX_SCANNER
7 #define YY_FLEX_MAJOR_VERSION 2
8 #define YY_FLEX_MINOR_VERSION 6
9 #define YY_FLEX_SUBMINOR_VERSION 4
10 #if YY_FLEX_SUBMINOR_VERSION > 0
11 #define FLEX_BETA
12 #endif
13
14 /* First, we deal with  platform-specific or compiler-specific issues. */
15
16 /* begin standard C headers. */
17 #include <stdio.h>
18 #include <string.h>
19 #include <errno.h>
20 #include <stdlib.h>
21
22 /* end standard C headers. */
23
24 /* flex integer type definitions */
25
26 #ifndef FLEXINT_H
27 #define FLEXINT_H
28
29 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
30
31 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
32
33 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
34  * if you want the limit (max/min) macros for int types. 
35  */
36 #ifndef __STDC_LIMIT_MACROS
37 #define __STDC_LIMIT_MACROS 1
38 #endif
39
40 #include <inttypes.h>
41 typedef int8_t flex_int8_t;
42 typedef uint8_t flex_uint8_t;
43 typedef int16_t flex_int16_t;
44 typedef uint16_t flex_uint16_t;
45 typedef int32_t flex_int32_t;
46 typedef uint32_t flex_uint32_t;
47 #else
48 typedef signed char flex_int8_t;
49 typedef short int flex_int16_t;
50 typedef int flex_int32_t;
51 typedef unsigned char flex_uint8_t; 
52 typedef unsigned short int flex_uint16_t;
53 typedef unsigned int flex_uint32_t;
54
55 /* Limits of integral types. */
56 #ifndef INT8_MIN
57 #define INT8_MIN               (-128)
58 #endif
59 #ifndef INT16_MIN
60 #define INT16_MIN              (-32767-1)
61 #endif
62 #ifndef INT32_MIN
63 #define INT32_MIN              (-2147483647-1)
64 #endif
65 #ifndef INT8_MAX
66 #define INT8_MAX               (127)
67 #endif
68 #ifndef INT16_MAX
69 #define INT16_MAX              (32767)
70 #endif
71 #ifndef INT32_MAX
72 #define INT32_MAX              (2147483647)
73 #endif
74 #ifndef UINT8_MAX
75 #define UINT8_MAX              (255U)
76 #endif
77 #ifndef UINT16_MAX
78 #define UINT16_MAX             (65535U)
79 #endif
80 #ifndef UINT32_MAX
81 #define UINT32_MAX             (4294967295U)
82 #endif
83
84 #ifndef SIZE_MAX
85 #define SIZE_MAX               (~(size_t)0)
86 #endif
87
88 #endif /* ! C99 */
89
90 #endif /* ! FLEXINT_H */
91
92 /* begin standard C++ headers. */
93
94 /* TODO: this is always defined, so inline it */
95 #define yyconst const
96
97 #if defined(__GNUC__) && __GNUC__ >= 3
98 #define yynoreturn __attribute__((__noreturn__))
99 #else
100 #define yynoreturn
101 #endif
102
103 /* Returned upon end-of-file. */
104 #define YY_NULL 0
105
106 /* Promotes a possibly negative, possibly signed char to an
107  *   integer in range [0..255] for use as an array index.
108  */
109 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
110
111 /* Enter a start condition.  This macro really ought to take a parameter,
112  * but we do it the disgusting crufty way forced on us by the ()-less
113  * definition of BEGIN.
114  */
115 #define BEGIN (yy_start) = 1 + 2 *
116 /* Translate the current start state into a value that can be later handed
117  * to BEGIN to return to the state.  The YYSTATE alias is for lex
118  * compatibility.
119  */
120 #define YY_START (((yy_start) - 1) / 2)
121 #define YYSTATE YY_START
122 /* Action number for EOF rule of a given start state. */
123 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
124 /* Special action meaning "start processing a new file". */
125 #define YY_NEW_FILE yyrestart( yyin  )
126 #define YY_END_OF_BUFFER_CHAR 0
127
128 /* Size of default input buffer. */
129 #ifndef YY_BUF_SIZE
130 #ifdef __ia64__
131 /* On IA-64, the buffer size is 16k, not 8k.
132  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
133  * Ditto for the __ia64__ case accordingly.
134  */
135 #define YY_BUF_SIZE 32768
136 #else
137 #define YY_BUF_SIZE 16384
138 #endif /* __ia64__ */
139 #endif
140
141 /* The state buf must be large enough to hold one state per character in the main buffer.
142  */
143 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
144
145 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
146 #define YY_TYPEDEF_YY_BUFFER_STATE
147 typedef struct yy_buffer_state *YY_BUFFER_STATE;
148 #endif
149
150 #ifndef YY_TYPEDEF_YY_SIZE_T
151 #define YY_TYPEDEF_YY_SIZE_T
152 typedef size_t yy_size_t;
153 #endif
154
155 extern int yyleng;
156
157 extern FILE *yyin, *yyout;
158
159 #define EOB_ACT_CONTINUE_SCAN 0
160 #define EOB_ACT_END_OF_FILE 1
161 #define EOB_ACT_LAST_MATCH 2
162     
163     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
164      *       access to the local variable yy_act. Since yyless() is a macro, it would break
165      *       existing scanners that call yyless() from OUTSIDE yylex.
166      *       One obvious solution it to make yy_act a global. I tried that, and saw
167      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
168      *       normally declared as a register variable-- so it is not worth it.
169      */
170     #define  YY_LESS_LINENO(n) \
171             do { \
172                 int yyl;\
173                 for ( yyl = n; yyl < yyleng; ++yyl )\
174                     if ( yytext[yyl] == '\n' )\
175                         --yylineno;\
176             }while(0)
177     #define YY_LINENO_REWIND_TO(dst) \
178             do {\
179                 const char *p;\
180                 for ( p = yy_cp-1; p >= (dst); --p)\
181                     if ( *p == '\n' )\
182                         --yylineno;\
183             }while(0)
184     
185 /* Return all but the first "n" matched characters back to the input stream. */
186 #define yyless(n) \
187         do \
188                 { \
189                 /* Undo effects of setting up yytext. */ \
190         int yyless_macro_arg = (n); \
191         YY_LESS_LINENO(yyless_macro_arg);\
192                 *yy_cp = (yy_hold_char); \
193                 YY_RESTORE_YY_MORE_OFFSET \
194                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
195                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
196                 } \
197         while ( 0 )
198 #define unput(c) yyunput( c, (yytext_ptr)  )
199
200 #ifndef YY_STRUCT_YY_BUFFER_STATE
201 #define YY_STRUCT_YY_BUFFER_STATE
202 struct yy_buffer_state
203         {
204         FILE *yy_input_file;
205
206         char *yy_ch_buf;                /* input buffer */
207         char *yy_buf_pos;               /* current position in input buffer */
208
209         /* Size of input buffer in bytes, not including room for EOB
210          * characters.
211          */
212         int yy_buf_size;
213
214         /* Number of characters read into yy_ch_buf, not including EOB
215          * characters.
216          */
217         int yy_n_chars;
218
219         /* Whether we "own" the buffer - i.e., we know we created it,
220          * and can realloc() it to grow it, and should free() it to
221          * delete it.
222          */
223         int yy_is_our_buffer;
224
225         /* Whether this is an "interactive" input source; if so, and
226          * if we're using stdio for input, then we want to use getc()
227          * instead of fread(), to make sure we stop fetching input after
228          * each newline.
229          */
230         int yy_is_interactive;
231
232         /* Whether we're considered to be at the beginning of a line.
233          * If so, '^' rules will be active on the next match, otherwise
234          * not.
235          */
236         int yy_at_bol;
237
238     int yy_bs_lineno; /**< The line count. */
239     int yy_bs_column; /**< The column count. */
240
241         /* Whether to try to fill the input buffer when we reach the
242          * end of it.
243          */
244         int yy_fill_buffer;
245
246         int yy_buffer_status;
247
248 #define YY_BUFFER_NEW 0
249 #define YY_BUFFER_NORMAL 1
250         /* When an EOF's been seen but there's still some text to process
251          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
252          * shouldn't try reading from the input source any more.  We might
253          * still have a bunch of tokens to match, though, because of
254          * possible backing-up.
255          *
256          * When we actually see the EOF, we change the status to "new"
257          * (via yyrestart()), so that the user can continue scanning by
258          * just pointing yyin at a new input file.
259          */
260 #define YY_BUFFER_EOF_PENDING 2
261
262         };
263 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
264
265 /* Stack of input buffers. */
266 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
267 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
268 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
269
270 /* We provide macros for accessing buffer states in case in the
271  * future we want to put the buffer states in a more general
272  * "scanner state".
273  *
274  * Returns the top of the stack, or NULL.
275  */
276 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
277                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
278                           : NULL)
279 /* Same as previous macro, but useful when we know that the buffer stack is not
280  * NULL or when we need an lvalue. For internal use only.
281  */
282 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
283
284 /* yy_hold_char holds the character lost when yytext is formed. */
285 static char yy_hold_char;
286 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
287 int yyleng;
288
289 /* Points to current character in buffer. */
290 static char *yy_c_buf_p = NULL;
291 static int yy_init = 0;         /* whether we need to initialize */
292 static int yy_start = 0;        /* start state number */
293
294 /* Flag which is used to allow yywrap()'s to do buffer switches
295  * instead of setting up a fresh yyin.  A bit of a hack ...
296  */
297 static int yy_did_buffer_switch_on_eof;
298
299 void yyrestart ( FILE *input_file  );
300 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
301 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
302 void yy_delete_buffer ( YY_BUFFER_STATE b  );
303 void yy_flush_buffer ( YY_BUFFER_STATE b  );
304 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
305 void yypop_buffer_state ( void );
306
307 static void yyensure_buffer_stack ( void );
308 static void yy_load_buffer_state ( void );
309 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
310 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
311
312 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
313 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
314 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
315
316 void *yyalloc ( yy_size_t  );
317 void *yyrealloc ( void *, yy_size_t  );
318 void yyfree ( void *  );
319
320 #define yy_new_buffer yy_create_buffer
321 #define yy_set_interactive(is_interactive) \
322         { \
323         if ( ! YY_CURRENT_BUFFER ){ \
324         yyensure_buffer_stack (); \
325                 YY_CURRENT_BUFFER_LVALUE =    \
326             yy_create_buffer( yyin, YY_BUF_SIZE ); \
327         } \
328         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
329         }
330 #define yy_set_bol(at_bol) \
331         { \
332         if ( ! YY_CURRENT_BUFFER ){\
333         yyensure_buffer_stack (); \
334                 YY_CURRENT_BUFFER_LVALUE =    \
335             yy_create_buffer( yyin, YY_BUF_SIZE ); \
336         } \
337         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
338         }
339 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
340
341 /* Begin user sect3 */
342
343 #define yywrap() (/*CONSTCOND*/1)
344 #define YY_SKIP_YYWRAP
345 typedef flex_uint8_t YY_CHAR;
346
347 FILE *yyin = NULL, *yyout = NULL;
348
349 typedef int yy_state_type;
350
351 extern int yylineno;
352 int yylineno = 1;
353
354 extern char *yytext;
355 #ifdef yytext_ptr
356 #undef yytext_ptr
357 #endif
358 #define yytext_ptr yytext
359
360 static const flex_int16_t yy_nxt[][44] =
361     {
362     {
363         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
364         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
365         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
366         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
367         0,    0,    0,    0
368     },
369
370     {
371         9,   10,   11,   12,   13,   14,   15,   16,   17,   14,
372        18,   19,   20,   21,   22,   22,   23,   24,   25,   26,
373        27,   22,   28,   29,   30,   31,   32,   22,   22,   33,
374        34,   22,   35,   22,   36,   37,   38,   39,   40,   22,
375        41,   22,   22,   42
376
377     },
378
379     {
380         9,   10,   11,   12,   13,   14,   15,   16,   17,   14,
381        18,   19,   20,   21,   22,   22,   23,   24,   25,   26,
382        27,   22,   28,   29,   30,   31,   32,   22,   22,   33,
383        34,   22,   35,   22,   36,   37,   38,   39,   40,   22,
384        41,   22,   22,   42
385     },
386
387     {
388         9,   43,   44,   45,   43,   43,   43,   43,   43,   43,
389        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
390        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
391        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
392        43,   43,   43,   43
393
394     },
395
396     {
397         9,   43,   44,   45,   43,   43,   43,   43,   43,   43,
398        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
399        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
400        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
401        43,   43,   43,   43
402     },
403
404     {
405         9,   46,   47,   48,   46,   46,   46,   46,   46,   46,
406        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
407        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
408        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
409        46,   46,   46,   46
410
411     },
412
413     {
414         9,   46,   47,   48,   46,   46,   46,   46,   46,   46,
415        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
416        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
417        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
418        46,   46,   46,   46
419     },
420
421     {
422         9,   49,   49,   50,   49,   51,   49,   52,   49,   51,
423        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
424        53,   49,   49,   49,   49,   49,   49,   49,   49,   49,
425        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
426        49,   49,   49,   49
427
428     },
429
430     {
431         9,   49,   49,   50,   49,   51,   49,   52,   49,   51,
432        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
433        53,   49,   49,   49,   49,   49,   49,   49,   49,   49,
434        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
435        49,   49,   49,   49
436     },
437
438     {
439        -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
440        -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
441        -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
442        -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
443        -9,   -9,   -9,   -9
444
445     },
446
447     {
448         9,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
449       -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
450       -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
451       -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
452       -10,  -10,  -10,  -10
453     },
454
455     {
456         9,  -11,   54,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
457       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
458       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
459       -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
460       -11,  -11,  -11,  -11
461
462     },
463
464     {
465         9,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
466       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
467       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
468       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
469       -12,  -12,  -12,  -12
470     },
471
472     {
473         9,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
474       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,   55,  -13,
475       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
476       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
477       -13,  -13,  -13,  -13
478
479     },
480
481     {
482         9,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
483       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
484       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
485       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
486       -14,  -14,  -14,  -14
487     },
488
489     {
490         9,   56,   56,  -15,   56,   56,   56,   56,   56,   56,
491        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
492        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
493        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
494        56,   56,   56,   56
495
496     },
497
498     {
499         9,  -16,  -16,  -16,  -16,  -16,  -16,   57,  -16,  -16,
500       -16,  -16,  -16,   57,   57,   57,  -16,  -16,  -16,  -16,
501       -16,   57,   57,   57,   57,   57,   57,   57,   57,   57,
502        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
503        57,   57,   57,  -16
504     },
505
506     {
507         9,  -17,  -17,  -17,  -17,  -17,  -17,  -17,   58,  -17,
508       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
509       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
510       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
511       -17,  -17,  -17,  -17
512
513     },
514
515     {
516         9,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
517       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
518       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
519       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
520       -18,  -18,  -18,  -18
521     },
522
523     {
524         9,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
525       -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
526       -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
527       -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
528       -19,  -19,  -19,  -19
529
530     },
531
532     {
533         9,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
534       -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,   59,  -20,
535       -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
536       -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
537       -20,  -20,  -20,  -20
538     },
539
540     {
541         9,  -21,  -21,  -21,  -21,  -21,  -21,   57,  -21,  -21,
542       -21,  -21,  -21,   60,   61,   61,  -21,  -21,  -21,  -21,
543       -21,   61,   61,   61,   61,   61,   61,   61,   61,   61,
544        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
545        61,   61,   61,  -21
546
547     },
548
549     {
550         9,  -22,  -22,  -22,  -22,  -22,  -22,   57,  -22,  -22,
551       -22,  -22,  -22,   61,   61,   61,  -22,  -22,  -22,  -22,
552       -22,   61,   61,   61,   61,   61,   61,   61,   61,   61,
553        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
554        61,   61,   61,  -22
555     },
556
557     {
558         9,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
559       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,   62,  -23,
560       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
561       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
562       -23,  -23,  -23,  -23
563
564     },
565
566     {
567         9,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
568       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,   63,  -24,
569       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
570       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
571       -24,  -24,  -24,  -24
572     },
573
574     {
575         9,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
576       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
577       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
578       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
579       -25,  -25,  -25,  -25
580
581     },
582
583     {
584         9,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
585       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,   64,  -26,
586       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
587       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
588       -26,  -26,  -26,  -26
589     },
590
591     {
592         9,  -27,  -27,   65,  -27,  -27,  -27,  -27,  -27,  -27,
593       -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
594       -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
595       -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
596       -27,  -27,  -27,  -27
597
598     },
599
600     {
601         9,  -28,  -28,  -28,  -28,  -28,  -28,   57,  -28,  -28,
602       -28,  -28,  -28,   61,   61,   61,  -28,  -28,  -28,  -28,
603       -28,   61,   61,   61,   61,   61,   61,   61,   61,   61,
604        61,   66,   61,   61,   61,   61,   61,   61,   61,   61,
605        61,   61,   61,  -28
606     },
607
608     {
609         9,  -29,  -29,  -29,  -29,  -29,  -29,   57,  -29,  -29,
610       -29,  -29,  -29,   61,   61,   61,  -29,  -29,  -29,  -29,
611       -29,   61,   61,   61,   61,   61,   61,   61,   61,   61,
612        61,   61,   61,   61,   67,   61,   61,   61,   61,   61,
613        61,   61,   61,  -29
614
615     },
616
617     {
618         9,  -30,  -30,  -30,  -30,  -30,  -30,   57,  -30,  -30,
619       -30,  -30,  -30,   61,   61,   61,  -30,  -30,  -30,  -30,
620       -30,   61,   61,   61,   61,   61,   61,   61,   61,   68,
621        61,   61,   61,   61,   69,   61,   61,   61,   61,   61,
622        61,   61,   61,  -30
623     },
624
625     {
626         9,  -31,  -31,  -31,  -31,  -31,  -31,   57,  -31,  -31,
627       -31,  -31,  -31,   61,   61,   61,  -31,  -31,  -31,  -31,
628       -31,   61,   61,   61,   61,   61,   70,   61,   61,   61,
629        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
630        61,   61,   61,  -31
631
632     },
633
634     {
635         9,  -32,  -32,  -32,  -32,  -32,  -32,   57,  -32,  -32,
636       -32,  -32,  -32,   61,   61,   61,  -32,  -32,  -32,  -32,
637       -32,   61,   61,   61,   61,   61,   61,   61,   61,   61,
638        61,   61,   61,   71,   61,   61,   61,   61,   61,   61,
639        61,   61,   61,  -32
640     },
641
642     {
643         9,  -33,  -33,  -33,  -33,  -33,  -33,   57,  -33,  -33,
644       -33,  -33,  -33,   61,   61,   61,  -33,  -33,  -33,  -33,
645       -33,   61,   61,   61,   61,   61,   72,   61,   61,   61,
646        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
647        61,   61,   61,  -33
648
649     },
650
651     {
652         9,  -34,  -34,  -34,  -34,  -34,  -34,   57,  -34,  -34,
653       -34,  -34,  -34,   61,   61,   61,  -34,  -34,  -34,  -34,
654       -34,   61,   61,   61,   61,   61,   61,   73,   61,   61,
655        61,   61,   74,   75,   61,   61,   61,   61,   61,   61,
656        61,   61,   61,  -34
657     },
658
659     {
660         9,  -35,  -35,  -35,  -35,  -35,  -35,   57,  -35,  -35,
661       -35,  -35,  -35,   61,   61,   61,  -35,  -35,  -35,  -35,
662       -35,   61,   76,   61,   61,   61,   77,   61,   61,   61,
663        61,   61,   61,   61,   78,   61,   61,   61,   61,   61,
664        61,   61,   61,  -35
665
666     },
667
668     {
669         9,  -36,  -36,  -36,  -36,  -36,  -36,   57,  -36,  -36,
670       -36,  -36,  -36,   61,   61,   61,  -36,  -36,  -36,  -36,
671       -36,   61,   61,   61,   61,   61,   61,   61,   61,   61,
672        61,   61,   61,   79,   61,   80,   61,   61,   61,   61,
673        61,   61,   61,  -36
674     },
675
676     {
677         9,  -37,  -37,  -37,  -37,  -37,  -37,   57,  -37,  -37,
678       -37,  -37,  -37,   61,   61,   61,  -37,  -37,  -37,  -37,
679       -37,   61,   61,   61,   61,   61,   61,   61,   61,   61,
680        61,   61,   61,   61,   61,   61,   81,   61,   61,   61,
681        61,   61,   61,  -37
682
683     },
684
685     {
686         9,  -38,  -38,  -38,  -38,  -38,  -38,   57,  -38,  -38,
687       -38,  -38,  -38,   61,   61,   61,  -38,  -38,  -38,  -38,
688       -38,   61,   82,   61,   61,   61,   83,   61,   61,   61,
689        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
690        61,   61,   61,  -38
691     },
692
693     {
694         9,  -39,  -39,  -39,  -39,  -39,  -39,   57,  -39,  -39,
695       -39,  -39,  -39,   61,   61,   61,  -39,  -39,  -39,  -39,
696       -39,   61,   61,   61,   61,   61,   84,   61,   61,   61,
697        61,   61,   61,   61,   85,   61,   61,   61,   86,   61,
698        61,   61,   61,  -39
699
700     },
701
702     {
703         9,  -40,  -40,  -40,  -40,  -40,  -40,   57,  -40,  -40,
704       -40,  -40,  -40,   61,   61,   61,  -40,  -40,  -40,  -40,
705       -40,   61,   61,   61,   61,   61,   61,   61,   61,   61,
706        61,   61,   61,   61,   61,   61,   87,   61,   61,   61,
707        61,   61,   61,  -40
708     },
709
710     {
711         9,  -41,  -41,  -41,  -41,  -41,  -41,   57,  -41,  -41,
712       -41,  -41,  -41,   61,   61,   61,  -41,  -41,  -41,  -41,
713       -41,   61,   61,   61,   61,   61,   61,   61,   61,   61,
714        88,   61,   61,   61,   61,   61,   61,   61,   61,   61,
715        61,   61,   61,  -41
716
717     },
718
719     {
720         9,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
721       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
722       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
723       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
724       -42,  -42,  -42,   89
725     },
726
727     {
728         9,   90,   91,  -43,   90,   90,   90,   90,   90,   90,
729        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
730        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
731        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
732        90,   90,   90,   90
733
734     },
735
736     {
737         9,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
738       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
739       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
740       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
741       -44,  -44,  -44,  -44
742     },
743
744     {
745         9,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
746       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
747       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
748       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
749       -45,  -45,  -45,  -45
750
751     },
752
753     {
754         9,   92,   92,  -46,   92,   92,   92,   92,   92,   92,
755        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
756        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
757        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
758        92,   92,   92,   92
759     },
760
761     {
762         9,  -47,   93,   94,  -47,  -47,  -47,  -47,  -47,  -47,
763       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
764       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
765       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
766       -47,  -47,  -47,  -47
767
768     },
769
770     {
771         9,   95,  -48,  -48,   95,   95,   95,   95,   95,   95,
772        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
773        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
774        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
775        95,   95,   95,   95
776     },
777
778     {
779         9,   96,   96,  -49,   96,  -49,   96,  -49,   96,  -49,
780        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
781       -49,   96,   96,   96,   96,   96,   96,   96,   96,   96,
782        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
783        96,   96,   96,   96
784
785     },
786
787     {
788         9,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
789       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
790       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
791       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
792       -50,  -50,  -50,  -50
793     },
794
795     {
796         9,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
797       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
798       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
799       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
800       -51,  -51,  -51,  -51
801
802     },
803
804     {
805         9,   97,   97,  -52,   97,   97,   97,   97,   97,   97,
806        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
807        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
808        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
809        97,   97,   97,   97
810     },
811
812     {
813         9,   98,   98,  -53,   98,   98,   98,   98,   98,   98,
814        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
815        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
816        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
817        98,   98,   98,   98
818
819     },
820
821     {
822         9,  -54,   54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
823       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
824       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
825       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
826       -54,  -54,  -54,  -54
827     },
828
829     {
830         9,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
831       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
832       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
833       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
834       -55,  -55,  -55,  -55
835
836     },
837
838     {
839         9,   56,   56,  -56,   56,   56,   56,   56,   56,   56,
840        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
841        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
842        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
843        56,   56,   56,   56
844     },
845
846     {
847         9,  -57,  -57,  -57,  -57,  -57,  -57,   57,  -57,  -57,
848       -57,  -57,  -57,   57,   57,   57,  -57,  -57,  -57,  -57,
849       -57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
850        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
851        57,   57,   57,  -57
852
853     },
854
855     {
856         9,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
857       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
858       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
859       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
860       -58,  -58,  -58,  -58
861     },
862
863     {
864         9,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
865       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
866       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
867       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
868       -59,  -59,  -59,  -59
869
870     },
871
872     {
873         9,  -60,  -60,  -60,  -60,  -60,  -60,   57,  -60,  -60,
874       -60,  -60,  -60,   99,   61,   61,  -60,  -60,  -60,  -60,
875       -60,   61,   61,   61,   61,   61,   61,   61,   61,   61,
876        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
877        61,   61,   61,  -60
878     },
879
880     {
881         9,  -61,  -61,  -61,  -61,  -61,  -61,   57,  -61,  -61,
882       -61,  -61,  -61,   61,   61,   61,  -61,  -61,  -61,  -61,
883       -61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
884        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
885        61,   61,   61,  -61
886
887     },
888
889     {
890         9,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
891       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
892       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
893       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
894       -62,  -62,  -62,  -62
895     },
896
897     {
898         9,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
899       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
900       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
901       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
902       -63,  -63,  -63,  -63
903
904     },
905
906     {
907         9,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
908       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
909       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
910       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
911       -64,  -64,  -64,  -64
912     },
913
914     {
915         9,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
916       -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
917       -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
918       -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
919       -65,  -65,  -65,  -65
920
921     },
922
923     {
924         9,  -66,  -66,  -66,  -66,  -66,  -66,   57,  -66,  -66,
925       -66,  -66,  -66,   61,   61,   61,  -66,  -66,  -66,  -66,
926       -66,   61,   61,   61,   61,   61,   61,   61,   61,   61,
927        61,  100,   61,   61,   61,   61,   61,   61,   61,   61,
928        61,   61,   61,  -66
929     },
930
931     {
932         9,  -67,  -67,  -67,  -67,  -67,  -67,   57,  -67,  -67,
933       -67,  -67,  -67,   61,   61,   61,  -67,  -67,  -67,  -67,
934       -67,   61,   61,   61,   61,   61,   61,   61,   61,   61,
935        61,   61,   61,   61,  101,   61,   61,   61,   61,   61,
936        61,   61,   61,  -67
937
938     },
939
940     {
941         9,  -68,  -68,  -68,  -68,  -68,  -68,   57,  -68,  -68,
942       -68,  -68,  -68,   61,   61,   61,  -68,  -68,  -68,  -68,
943       -68,   61,   61,   61,   61,   61,   61,   61,   61,   61,
944        61,   61,   61,   61,  102,   61,   61,   61,   61,   61,
945        61,   61,   61,  -68
946     },
947
948     {
949         9,  -69,  -69,  -69,  -69,  -69,  -69,   57,  -69,  -69,
950       -69,  -69,  -69,   61,   61,   61,  -69,  -69,  -69,  -69,
951       -69,   61,   61,   61,   61,   61,   61,   61,   61,   61,
952        61,   61,  103,  104,   61,   61,   61,   61,   61,   61,
953        61,   61,   61,  -69
954
955     },
956
957     {
958         9,  -70,  -70,  -70,  -70,  -70,  -70,   57,  -70,  -70,
959       -70,  -70,  -70,   61,   61,   61,  -70,  -70,  -70,  -70,
960       -70,   61,   61,   61,   61,   61,   61,  105,   61,   61,
961        61,   61,   61,   61,   61,  106,   61,   61,   61,   61,
962        61,   61,   61,  -70
963     },
964
965     {
966         9,  -71,  -71,  -71,  -71,  -71,  -71,   57,  -71,  -71,
967       -71,  -71,  -71,   61,   61,   61,  -71,  -71,  -71,  -71,
968       -71,   61,   61,   61,   61,  107,   61,   61,   61,   61,
969        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
970        61,   61,   61,  -71
971
972     },
973
974     {
975         9,  -72,  -72,  -72,  -72,  -72,  -72,   57,  -72,  -72,
976       -72,  -72,  -72,   61,   61,   61,  -72,  -72,  -72,  -72,
977       -72,   61,   61,   61,   61,   61,   61,   61,   61,   61,
978        61,  108,   61,   61,   61,   61,   61,   61,   61,   61,
979        61,  109,   61,  -72
980     },
981
982     {
983         9,  -73,  -73,  -73,  -73,  -73,  -73,   57,  -73,  -73,
984       -73,  -73,  -73,   61,   61,   61,  -73,  -73,  -73,  -73,
985       -73,   61,   61,   61,   61,   61,   61,   61,   61,   61,
986        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
987        61,   61,   61,  -73
988
989     },
990
991     {
992         9,  -74,  -74,  -74,  -74,  -74,  -74,   57,  -74,  -74,
993       -74,  -74,  -74,   61,   61,   61,  -74,  -74,  -74,  -74,
994       -74,   61,   61,   61,   61,   61,   61,   61,   61,   61,
995        61,   61,   61,   61,   61,  110,   61,   61,   61,   61,
996        61,   61,   61,  -74
997     },
998
999     {
1000         9,  -75,  -75,  -75,  -75,  -75,  -75,   57,  -75,  -75,
1001       -75,  -75,  -75,   61,   61,   61,  -75,  -75,  -75,  -75,
1002       -75,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1003        61,   61,   61,   61,   61,   61,   61,   61,  111,   61,
1004        61,   61,   61,  -75
1005
1006     },
1007
1008     {
1009         9,  -76,  -76,  -76,  -76,  -76,  -76,   57,  -76,  -76,
1010       -76,  -76,  -76,   61,   61,   61,  -76,  -76,  -76,  -76,
1011       -76,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1012       112,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1013        61,   61,   61,  -76
1014     },
1015
1016     {
1017         9,  -77,  -77,  -77,  -77,  -77,  -77,   57,  -77,  -77,
1018       -77,  -77,  -77,   61,   61,   61,  -77,  -77,  -77,  -77,
1019       -77,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1020        61,   61,   61,  113,   61,   61,   61,   61,   61,   61,
1021        61,   61,   61,  -77
1022
1023     },
1024
1025     {
1026         9,  -78,  -78,  -78,  -78,  -78,  -78,   57,  -78,  -78,
1027       -78,  -78,  -78,   61,   61,   61,  -78,  -78,  -78,  -78,
1028       -78,   61,   61,   61,   61,  114,   61,   61,   61,   61,
1029        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1030        61,   61,   61,  -78
1031     },
1032
1033     {
1034         9,  -79,  -79,  -79,  -79,  -79,  -79,   57,  -79,  -79,
1035       -79,  -79,  -79,   61,   61,   61,  -79,  -79,  -79,  -79,
1036       -79,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1037        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1038        61,   61,   61,  -79
1039
1040     },
1041
1042     {
1043         9,  -80,  -80,  -80,  -80,  -80,  -80,   57,  -80,  -80,
1044       -80,  -80,  -80,   61,   61,   61,  -80,  -80,  -80,  -80,
1045       -80,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1046        61,   61,   61,   61,   61,   61,   61,   61,  115,   61,
1047        61,   61,   61,  -80
1048     },
1049
1050     {
1051         9,  -81,  -81,  -81,  -81,  -81,  -81,   57,  -81,  -81,
1052       -81,  -81,  -81,   61,   61,   61,  -81,  -81,  -81,  -81,
1053       -81,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1054        61,   61,   61,   61,  116,   61,   61,   61,   61,   61,
1055        61,   61,   61,  -81
1056
1057     },
1058
1059     {
1060         9,  -82,  -82,  -82,  -82,  -82,  -82,   57,  -82,  -82,
1061       -82,  -82,  -82,   61,   61,   61,  -82,  -82,  -82,  -82,
1062       -82,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1063        61,   61,   61,  117,   61,   61,   61,   61,   61,   61,
1064        61,   61,   61,  -82
1065     },
1066
1067     {
1068         9,  -83,  -83,  -83,  -83,  -83,  -83,   57,  -83,  -83,
1069       -83,  -83,  -83,   61,   61,   61,  -83,  -83,  -83,  -83,
1070       -83,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1071        61,   61,   61,   61,   61,   61,   61,  118,   61,   61,
1072        61,   61,   61,  -83
1073
1074     },
1075
1076     {
1077         9,  -84,  -84,  -84,  -84,  -84,  -84,   57,  -84,  -84,
1078       -84,  -84,  -84,   61,   61,   61,  -84,  -84,  -84,  -84,
1079       -84,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1080        61,  119,   61,   61,   61,   61,   61,   61,   61,   61,
1081        61,   61,   61,  -84
1082     },
1083
1084     {
1085         9,  -85,  -85,  -85,  -85,  -85,  -85,   57,  -85,  -85,
1086       -85,  -85,  -85,   61,   61,   61,  -85,  -85,  -85,  -85,
1087       -85,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1088        61,   61,   61,   61,   61,   61,   61,   61,   61,  120,
1089        61,   61,   61,  -85
1090
1091     },
1092
1093     {
1094         9,  -86,  -86,  -86,  -86,  -86,  -86,   57,  -86,  -86,
1095       -86,  -86,  -86,   61,   61,   61,  -86,  -86,  -86,  -86,
1096       -86,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1097        61,   61,   61,   61,   61,   61,  121,   61,   61,   61,
1098        61,   61,   61,  -86
1099     },
1100
1101     {
1102         9,  -87,  -87,  -87,  -87,  -87,  -87,   57,  -87,  -87,
1103       -87,  -87,  -87,   61,   61,   61,  -87,  -87,  -87,  -87,
1104       -87,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1105       122,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1106        61,   61,   61,  -87
1107
1108     },
1109
1110     {
1111         9,  -88,  -88,  -88,  -88,  -88,  -88,   57,  -88,  -88,
1112       -88,  -88,  -88,   61,   61,   61,  -88,  -88,  -88,  -88,
1113       -88,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1114        61,   61,   61,   61,   61,   61,   61,  123,   61,   61,
1115        61,   61,   61,  -88
1116     },
1117
1118     {
1119         9,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
1120       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
1121       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
1122       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
1123       -89,  -89,  -89,  -89
1124
1125     },
1126
1127     {
1128         9,   90,   91,  -90,   90,   90,   90,   90,   90,   90,
1129        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1130        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1131        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1132        90,   90,   90,   90
1133     },
1134
1135     {
1136         9,   91,   91,  -91,   91,   91,   91,   91,   91,   91,
1137        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
1138        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
1139        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
1140        91,   91,   91,   91
1141
1142     },
1143
1144     {
1145         9,   92,   92,  -92,   92,   92,   92,   92,   92,   92,
1146        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
1147        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
1148        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
1149        92,   92,   92,   92
1150     },
1151
1152     {
1153         9,  -93,   93,   94,  -93,  -93,  -93,  -93,  -93,  -93,
1154       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
1155       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
1156       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
1157       -93,  -93,  -93,  -93
1158
1159     },
1160
1161     {
1162         9,   95,  -94,  -94,   95,   95,   95,   95,   95,   95,
1163        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
1164        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
1165        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
1166        95,   95,   95,   95
1167     },
1168
1169     {
1170         9,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
1171       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
1172       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
1173       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
1174       -95,  -95,  -95,  -95
1175
1176     },
1177
1178     {
1179         9,   96,   96,  -96,   96,  -96,   96,  -96,   96,  -96,
1180        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
1181       -96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
1182        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
1183        96,   96,   96,   96
1184     },
1185
1186     {
1187         9,   97,   97,  -97,   97,   97,   97,   97,   97,   97,
1188        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
1189        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
1190        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
1191        97,   97,   97,   97
1192
1193     },
1194
1195     {
1196         9,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
1197       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
1198       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
1199       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
1200       -98,  -98,  -98,  -98
1201     },
1202
1203     {
1204         9,  -99,  -99,  -99,  -99,  -99,  -99,   57,  -99,  -99,
1205       -99,  -99,  -99,   61,   61,   61,  -99,  -99,  -99,  -99,
1206       -99,   61,   61,   61,   61,   61,   61,   61,   61,  124,
1207        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1208        61,   61,   61,  -99
1209
1210     },
1211
1212     {
1213         9, -100, -100, -100, -100, -100, -100,   57, -100, -100,
1214      -100, -100, -100,   61,   61,   61, -100, -100, -100, -100,
1215      -100,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1216        61,   61,   61,  125,   61,   61,   61,   61,   61,   61,
1217        61,   61,   61, -100
1218     },
1219
1220     {
1221         9, -101, -101, -101, -101, -101, -101,   57, -101, -101,
1222      -101, -101, -101,   61,   61,   61, -101, -101, -101, -101,
1223      -101,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1224        61,  126,   61,   61,   61,   61,   61,   61,   61,   61,
1225        61,   61,   61, -101
1226
1227     },
1228
1229     {
1230         9, -102, -102, -102, -102, -102, -102,   57, -102, -102,
1231      -102, -102, -102,   61,   61,   61, -102, -102, -102, -102,
1232      -102,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1233       127,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1234        61,   61,   61, -102
1235     },
1236
1237     {
1238         9, -103, -103, -103, -103, -103, -103,   57, -103, -103,
1239      -103, -103, -103,   61,   61,   61, -103, -103, -103, -103,
1240      -103,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1241        61,   61,  128,   61,   61,   61,   61,   61,   61,   61,
1242        61,   61,   61, -103
1243
1244     },
1245
1246     {
1247         9, -104, -104, -104, -104, -104, -104,   57, -104, -104,
1248      -104, -104, -104,   61,   61,   61, -104, -104, -104, -104,
1249      -104,   61,   61,   61,   61,   61,   61,  129,   61,   61,
1250        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1251        61,   61,   61, -104
1252     },
1253
1254     {
1255         9, -105, -105, -105, -105, -105, -105,   57, -105, -105,
1256      -105, -105, -105,   61,   61,   61, -105, -105, -105, -105,
1257      -105,  130,  131,   61,  132,   61,   61,   61,   61,   61,
1258        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1259        61,   61,   61, -105
1260
1261     },
1262
1263     {
1264         9, -106, -106, -106, -106, -106, -106,   57, -106, -106,
1265      -106, -106, -106,   61,   61,   61, -106, -106, -106, -106,
1266      -106,   61,   61,   61,   61,   61,  133,   61,   61,   61,
1267        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1268        61,   61,   61, -106
1269     },
1270
1271     {
1272         9, -107, -107, -107, -107, -107, -107,   57, -107, -107,
1273      -107, -107, -107,   61,   61,   61, -107, -107, -107, -107,
1274      -107,   61,   61,   61,  134,   61,   61,   61,   61,   61,
1275       135,   61,  136,   61,   61,   61,   61,   61,   61,   61,
1276        61,   61,   61, -107
1277
1278     },
1279
1280     {
1281         9, -108, -108, -108, -108, -108, -108,   57, -108, -108,
1282      -108, -108, -108,   61,   61,   61, -108, -108, -108, -108,
1283      -108,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1284        61,   61,   61,   61,   61,  137,   61,   61,   61,   61,
1285        61,   61,   61, -108
1286     },
1287
1288     {
1289         9, -109, -109, -109, -109, -109, -109,   57, -109, -109,
1290      -109, -109, -109,   61,   61,   61, -109, -109, -109, -109,
1291      -109,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1292        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1293        61,   61,   61, -109
1294
1295     },
1296
1297     {
1298         9, -110, -110, -110, -110, -110, -110,   57, -110, -110,
1299      -110, -110, -110,   61,   61,   61, -110, -110, -110, -110,
1300      -110,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1301        61,  138,   61,   61,   61,   61,   61,   61,   61,   61,
1302        61,   61,   61, -110
1303     },
1304
1305     {
1306         9, -111, -111, -111, -111, -111, -111,   57, -111, -111,
1307      -111, -111, -111,   61,   61,   61, -111, -111, -111, -111,
1308      -111,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1309        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1310        61,   61,   61, -111
1311
1312     },
1313
1314     {
1315         9, -112, -112, -112, -112, -112, -112,   57, -112, -112,
1316      -112, -112, -112,   61,   61,   61, -112, -112, -112, -112,
1317      -112,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1318        61,   61,   61,  139,   61,   61,   61,   61,   61,   61,
1319        61,   61,   61, -112
1320     },
1321
1322     {
1323         9, -113, -113, -113, -113, -113, -113,   57, -113, -113,
1324      -113, -113, -113,   61,   61,   61, -113, -113, -113, -113,
1325      -113,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1326        61,   61,   61,   61,   61,   61,   61,   61,   61,  140,
1327        61,   61,   61, -113
1328
1329     },
1330
1331     {
1332         9, -114, -114, -114, -114, -114, -114,   57, -114, -114,
1333      -114, -114, -114,   61,   61,   61, -114, -114, -114, -114,
1334      -114,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1335        61,   61,   61,   61,   61,   61,   61,   61,   61,  141,
1336        61,   61,   61, -114
1337     },
1338
1339     {
1340         9, -115, -115, -115, -115, -115, -115,   57, -115, -115,
1341      -115, -115, -115,   61,   61,   61, -115, -115, -115, -115,
1342      -115,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1343       142,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1344        61,   61,   61, -115
1345
1346     },
1347
1348     {
1349         9, -116, -116, -116, -116, -116, -116,   57, -116, -116,
1350      -116, -116, -116,   61,   61,   61, -116, -116, -116, -116,
1351      -116,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1352        61,   61,  143,   61,   61,   61,   61,   61,   61,   61,
1353        61,   61,   61, -116
1354     },
1355
1356     {
1357         9, -117, -117, -117, -117, -117, -117,   57, -117, -117,
1358      -117, -117, -117,   61,   61,   61, -117, -117, -117, -117,
1359      -117,   61,   61,   61,   61,   61,   61,   61,  144,   61,
1360        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1361        61,   61,   61, -117
1362
1363     },
1364
1365     {
1366         9, -118, -118, -118, -118, -118, -118,   57, -118, -118,
1367      -118, -118, -118,   61,   61,   61, -118, -118, -118, -118,
1368      -118,   61,   61,   61,   61,   61,  145,   61,   61,   61,
1369        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1370        61,   61,   61, -118
1371     },
1372
1373     {
1374         9, -119, -119, -119, -119, -119, -119,   57, -119, -119,
1375      -119, -119, -119,   61,   61,   61, -119, -119, -119, -119,
1376      -119,   61,   61,   61,   61,   61,  146,   61,   61,   61,
1377        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1378        61,   61,   61, -119
1379
1380     },
1381
1382     {
1383         9, -120, -120, -120, -120, -120, -120,   57, -120, -120,
1384      -120, -120, -120,   61,   61,   61, -120, -120, -120, -120,
1385      -120,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1386        61,   61,   61,   61,   61,   61,  147,   61,   61,   61,
1387        61,   61,   61, -120
1388     },
1389
1390     {
1391         9, -121, -121, -121, -121, -121, -121,   57, -121, -121,
1392      -121, -121, -121,   61,   61,   61, -121, -121, -121, -121,
1393      -121,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1394       148,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1395        61,   61,   61, -121
1396
1397     },
1398
1399     {
1400         9, -122, -122, -122, -122, -122, -122,   57, -122, -122,
1401      -122, -122, -122,   61,   61,   61, -122, -122, -122, -122,
1402      -122,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1403        61,   61,   61,   61,   61,   61,   61,  149,   61,   61,
1404        61,   61,   61, -122
1405     },
1406
1407     {
1408         9, -123, -123, -123, -123, -123, -123,   57, -123, -123,
1409      -123, -123, -123,   61,   61,   61, -123, -123, -123, -123,
1410      -123,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1411       150,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1412        61,   61,   61, -123
1413
1414     },
1415
1416     {
1417         9, -124, -124, -124, -124, -124, -124,   57, -124, -124,
1418      -124, -124, -124,   61,   61,   61, -124, -124, -124, -124,
1419      -124,   61,   61,   61,   61,   61,  151,   61,   61,   61,
1420        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1421        61,   61,   61, -124
1422     },
1423
1424     {
1425         9, -125, -125, -125, -125, -125, -125,   57, -125, -125,
1426      -125, -125, -125,   61,   61,   61, -125, -125, -125, -125,
1427      -125,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1428        61,   61,   61,   61,  152,   61,   61,   61,   61,   61,
1429        61,   61,   61, -125
1430
1431     },
1432
1433     {
1434         9, -126, -126, -126, -126, -126, -126,   57, -126, -126,
1435      -126, -126, -126,   61,   61,   61, -126, -126, -126, -126,
1436      -126,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1437        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1438        61,   61,   61, -126
1439     },
1440
1441     {
1442         9, -127, -127, -127, -127, -127, -127,   57, -127, -127,
1443      -127, -127, -127,   61,   61,   61, -127, -127, -127, -127,
1444      -127,   61,   61,   61,  153,   61,   61,   61,   61,   61,
1445        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1446        61,   61,   61, -127
1447
1448     },
1449
1450     {
1451         9, -128, -128, -128, -128, -128, -128,   57, -128, -128,
1452      -128, -128, -128,   61,   61,   61, -128, -128, -128, -128,
1453      -128,   61,   61,   61,   61,   61,  154,   61,   61,   61,
1454        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1455        61,   61,   61, -128
1456     },
1457
1458     {
1459         9, -129, -129, -129, -129, -129, -129,   57, -129, -129,
1460      -129, -129, -129,   61,   61,   61, -129, -129, -129, -129,
1461      -129,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1462       155,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1463        61,   61,   61, -129
1464
1465     },
1466
1467     {
1468         9, -130, -130, -130, -130, -130, -130,   57, -130, -130,
1469      -130, -130, -130,   61,   61,   61, -130, -130, -130, -130,
1470      -130,   61,   61,  156,   61,   61,   61,   61,   61,   61,
1471        61,   61,   61,   61,   61,   61,   61,   61,  157,   61,
1472        61,   61,   61, -130
1473     },
1474
1475     {
1476         9, -131, -131, -131, -131, -131, -131,   57, -131, -131,
1477      -131, -131, -131,   61,   61,   61, -131, -131, -131, -131,
1478      -131,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1479        61,   61,   61,   61,   61,   61,   61,   61,   61,  158,
1480        61,   61,   61, -131
1481
1482     },
1483
1484     {
1485         9, -132, -132, -132, -132, -132, -132,   57, -132, -132,
1486      -132, -132, -132,   61,   61,   61, -132, -132, -132, -132,
1487      -132,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1488        61,   61,   61,   61,  159,   61,   61,   61,   61,   61,
1489        61,   61,   61, -132
1490     },
1491
1492     {
1493         9, -133, -133, -133, -133, -133, -133,   57, -133, -133,
1494      -133, -133, -133,   61,   61,   61, -133, -133, -133, -133,
1495      -133,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1496        61,   61,   61,  160,   61,   61,   61,   61,   61,   61,
1497        61,   61,   61, -133
1498
1499     },
1500
1501     {
1502         9, -134, -134, -134, -134, -134, -134,   57, -134, -134,
1503      -134, -134, -134,   61,   61,   61, -134, -134, -134, -134,
1504      -134,   61,   61,   61,   61,   61,   61,   61,   61,  161,
1505        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1506        61,   61,   61, -134
1507     },
1508
1509     {
1510         9, -135, -135, -135, -135, -135, -135,   57, -135, -135,
1511      -135, -135, -135,   61,   61,   61, -135, -135, -135, -135,
1512      -135,   61,   61,   61,   61,   61,   61,  162,   61,   61,
1513        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1514        61,   61,   61, -135
1515
1516     },
1517
1518     {
1519         9, -136, -136, -136, -136, -136, -136,   57, -136, -136,
1520      -136, -136, -136,   61,   61,   61, -136, -136, -136, -136,
1521      -136,   61,   61,   61,   61,   61,  163,   61,   61,   61,
1522        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1523        61,   61,   61, -136
1524     },
1525
1526     {
1527         9, -137, -137, -137, -137, -137, -137,   57, -137, -137,
1528      -137, -137, -137,   61,   61,   61, -137, -137, -137, -137,
1529      -137,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1530        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1531        61,   61,   61, -137
1532
1533     },
1534
1535     {
1536         9, -138, -138, -138, -138, -138, -138,   57, -138, -138,
1537      -138, -138, -138,   61,   61,   61, -138, -138, -138, -138,
1538      -138,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1539        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1540        61,   61,  164, -138
1541     },
1542
1543     {
1544         9, -139, -139, -139, -139, -139, -139,   57, -139, -139,
1545      -139, -139, -139,   61,   61,   61, -139, -139, -139, -139,
1546      -139,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1547        61,   61,  165,   61,   61,   61,   61,   61,   61,   61,
1548        61,   61,   61, -139
1549
1550     },
1551
1552     {
1553         9, -140, -140, -140, -140, -140, -140,   57, -140, -140,
1554      -140, -140, -140,   61,   61,   61, -140, -140, -140, -140,
1555      -140,   61,   61,   61,  166,   61,   61,   61,   61,   61,
1556        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1557        61,   61,   61, -140
1558     },
1559
1560     {
1561         9, -141, -141, -141, -141, -141, -141,   57, -141, -141,
1562      -141, -141, -141,   61,   61,   61, -141, -141, -141, -141,
1563      -141,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1564        61,  167,   61,   61,   61,   61,   61,   61,   61,   61,
1565        61,   61,   61, -141
1566
1567     },
1568
1569     {
1570         9, -142, -142, -142, -142, -142, -142,   57, -142, -142,
1571      -142, -142, -142,   61,   61,   61, -142, -142, -142, -142,
1572      -142,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1573        61,   61,   61,   61,  168,   61,   61,   61,   61,   61,
1574        61,   61,   61, -142
1575     },
1576
1577     {
1578         9, -143, -143, -143, -143, -143, -143,   57, -143, -143,
1579      -143, -143, -143,   61,   61,   61, -143, -143, -143, -143,
1580      -143,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1581        61,   61,   61,   61,   61,  169,   61,   61,   61,   61,
1582        61,   61,   61, -143
1583
1584     },
1585
1586     {
1587         9, -144, -144, -144, -144, -144, -144,   57, -144, -144,
1588      -144, -144, -144,   61,   61,   61, -144, -144, -144, -144,
1589      -144,   61,   61,   61,   61,   61,  170,   61,   61,   61,
1590        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1591        61,   61,   61, -144
1592     },
1593
1594     {
1595         9, -145, -145, -145, -145, -145, -145,   57, -145, -145,
1596      -145, -145, -145,   61,   61,   61, -145, -145, -145, -145,
1597      -145,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1598        61,   61,   61,   61,   61,   61,   61,   61,  171,   61,
1599        61,   61,   61, -145
1600
1601     },
1602
1603     {
1604         9, -146, -146, -146, -146, -146, -146,   57, -146, -146,
1605      -146, -146, -146,   61,   61,   61, -146, -146, -146, -146,
1606      -146,   61,   61,   61,  172,   61,   61,   61,   61,   61,
1607        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1608        61,   61,   61, -146
1609     },
1610
1611     {
1612         9, -147, -147, -147, -147, -147, -147,   57, -147, -147,
1613      -147, -147, -147,   61,   61,   61, -147, -147, -147, -147,
1614      -147,   61,   61,   61,  173,   61,   61,   61,   61,   61,
1615        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1616        61,   61,   61, -147
1617
1618     },
1619
1620     {
1621         9, -148, -148, -148, -148, -148, -148,   57, -148, -148,
1622      -148, -148, -148,   61,   61,   61, -148, -148, -148, -148,
1623      -148,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1624        61,   61,   61,  174,   61,   61,   61,   61,   61,   61,
1625        61,   61,   61, -148
1626     },
1627
1628     {
1629         9, -149, -149, -149, -149, -149, -149,   57, -149, -149,
1630      -149, -149, -149,   61,   61,   61, -149, -149, -149, -149,
1631      -149,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1632        61,   61,   61,   61,   61,   61,   61,   61,  175,   61,
1633        61,   61,   61, -149
1634
1635     },
1636
1637     {
1638         9, -150, -150, -150, -150, -150, -150,   57, -150, -150,
1639      -150, -150, -150,   61,   61,   61, -150, -150, -150, -150,
1640      -150,   61,   61,  176,   61,   61,   61,   61,   61,   61,
1641        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1642        61,   61,   61, -150
1643     },
1644
1645     {
1646         9, -151, -151, -151, -151, -151, -151,   57, -151, -151,
1647      -151, -151, -151,   61,   61,   61, -151, -151, -151, -151,
1648      -151,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1649        61,  177,   61,   61,   61,   61,   61,   61,   61,   61,
1650        61,   61,   61, -151
1651
1652     },
1653
1654     {
1655         9, -152, -152, -152, -152, -152, -152,   57, -152, -152,
1656      -152, -152, -152,   61,   61,   61, -152, -152, -152, -152,
1657      -152,   61,   61,   61,  178,   61,   61,   61,   61,   61,
1658        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1659        61,   61,   61, -152
1660     },
1661
1662     {
1663         9, -153, -153, -153, -153, -153, -153,   57, -153, -153,
1664      -153, -153, -153,   61,   61,   61, -153, -153, -153, -153,
1665      -153,   61,   61,   61,   61,   61,  179,   61,   61,   61,
1666        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1667        61,   61,   61, -153
1668
1669     },
1670
1671     {
1672         9, -154, -154, -154, -154, -154, -154,   57, -154, -154,
1673      -154, -154, -154,   61,   61,   61, -154, -154, -154, -154,
1674      -154,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1675        61,   61,   61,  180,   61,   61,   61,   61,   61,   61,
1676        61,   61,   61, -154
1677     },
1678
1679     {
1680         9, -155, -155, -155, -155, -155, -155,   57, -155, -155,
1681      -155, -155, -155,   61,   61,   61, -155, -155, -155, -155,
1682      -155,   61,   61,   61,   61,   61,   61,   61,  181,   61,
1683        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1684        61,   61,   61, -155
1685
1686     },
1687
1688     {
1689         9, -156, -156, -156, -156, -156, -156,   57, -156, -156,
1690      -156, -156, -156,   61,   61,   61, -156, -156, -156, -156,
1691      -156,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1692        61,   61,   61,   61,  182,   61,   61,   61,   61,   61,
1693        61,   61,   61, -156
1694     },
1695
1696     {
1697         9, -157, -157, -157, -157, -157, -157,   57, -157, -157,
1698      -157, -157, -157,   61,   61,   61, -157, -157, -157, -157,
1699      -157,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1700        61,   61,   61,   61,   61,   61,  183,   61,   61,   61,
1701        61,   61,   61, -157
1702
1703     },
1704
1705     {
1706         9, -158, -158, -158, -158, -158, -158,   57, -158, -158,
1707      -158, -158, -158,   61,   61,   61, -158, -158, -158, -158,
1708      -158,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1709        61,  184,   61,   61,   61,   61,   61,   61,   61,   61,
1710        61,   61,   61, -158
1711     },
1712
1713     {
1714         9, -159, -159, -159, -159, -159, -159,   57, -159, -159,
1715      -159, -159, -159,   61,   61,   61, -159, -159, -159, -159,
1716      -159,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1717        61,   61,   61,  185,   61,   61,   61,   61,   61,   61,
1718        61,   61,   61, -159
1719
1720     },
1721
1722     {
1723         9, -160, -160, -160, -160, -160, -160,   57, -160, -160,
1724      -160, -160, -160,   61,   61,   61, -160, -160, -160, -160,
1725      -160,   61,   61,   61,   61,  186,   61,   61,   61,   61,
1726        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1727        61,   61,   61, -160
1728     },
1729
1730     {
1731         9, -161, -161, -161, -161, -161, -161,   57, -161, -161,
1732      -161, -161, -161,   61,   61,   61, -161, -161, -161, -161,
1733      -161,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1734        61,   61,   61,   61,  187,   61,   61,   61,   61,   61,
1735        61,   61,   61, -161
1736
1737     },
1738
1739     {
1740         9, -162, -162, -162, -162, -162, -162,   57, -162, -162,
1741      -162, -162, -162,   61,   61,   61, -162, -162, -162, -162,
1742      -162,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1743        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1744        61,   61,   61, -162
1745     },
1746
1747     {
1748         9, -163, -163, -163, -163, -163, -163,   57, -163, -163,
1749      -163, -163, -163,   61,   61,   61, -163, -163, -163, -163,
1750      -163,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1751        61,   61,   61,  188,   61,   61,   61,   61,   61,   61,
1752        61,   61,   61, -163
1753
1754     },
1755
1756     {
1757         9, -164, -164, -164, -164, -164, -164,   57, -164, -164,
1758      -164, -164, -164,   61,   61,   61, -164, -164, -164, -164,
1759      -164,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1760        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1761        61,   61,   61, -164
1762     },
1763
1764     {
1765         9, -165, -165, -165, -165, -165, -165,   57, -165, -165,
1766      -165, -165, -165,   61,   61,   61, -165, -165, -165, -165,
1767      -165,   61,   61,   61,   61,   61,  189,   61,   61,   61,
1768        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1769        61,   61,   61, -165
1770
1771     },
1772
1773     {
1774         9, -166, -166, -166, -166, -166, -166,   57, -166, -166,
1775      -166, -166, -166,   61,   61,   61, -166, -166, -166, -166,
1776      -166,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1777        61,   61,   61,   61,  190,   61,   61,   61,   61,   61,
1778        61,   61,   61, -166
1779     },
1780
1781     {
1782         9, -167, -167, -167, -167, -167, -167,   57, -167, -167,
1783      -167, -167, -167,   61,   61,   61, -167, -167, -167, -167,
1784      -167,   61,   61,   61,   61,   61,  191,   61,   61,   61,
1785        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1786        61,   61,   61, -167
1787
1788     },
1789
1790     {
1791         9, -168, -168, -168, -168, -168, -168,   57, -168, -168,
1792      -168, -168, -168,   61,   61,   61, -168, -168, -168, -168,
1793      -168,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1794        61,   61,   61,  192,   61,   61,   61,   61,   61,   61,
1795        61,   61,   61, -168
1796     },
1797
1798     {
1799         9, -169, -169, -169, -169, -169, -169,   57, -169, -169,
1800      -169, -169, -169,   61,   61,   61, -169, -169, -169, -169,
1801      -169,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1802        61,   61,   61,   61,   61,   61,   61,   61,  193,   61,
1803        61,   61,   61, -169
1804
1805     },
1806
1807     {
1808         9, -170, -170, -170, -170, -170, -170,   57, -170, -170,
1809      -170, -170, -170,   61,   61,   61, -170, -170, -170, -170,
1810      -170,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1811        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1812        61,   61,   61, -170
1813     },
1814
1815     {
1816         9, -171, -171, -171, -171, -171, -171,   57, -171, -171,
1817      -171, -171, -171,   61,   61,   61, -171, -171, -171, -171,
1818      -171,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1819        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1820        61,   61,   61, -171
1821
1822     },
1823
1824     {
1825         9, -172, -172, -172, -172, -172, -172,   57, -172, -172,
1826      -172, -172, -172,   61,   61,   61, -172, -172, -172, -172,
1827      -172,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1828        61,   61,   61,   61,   61,   61,   61,   61,  194,   61,
1829        61,   61,   61, -172
1830     },
1831
1832     {
1833         9, -173, -173, -173, -173, -173, -173,   57, -173, -173,
1834      -173, -173, -173,   61,   61,   61, -173, -173, -173, -173,
1835      -173,   61,   61,   61,   61,   61,  195,   61,   61,   61,
1836        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1837        61,   61,   61, -173
1838
1839     },
1840
1841     {
1842         9, -174, -174, -174, -174, -174, -174,   57, -174, -174,
1843      -174, -174, -174,   61,   61,   61, -174, -174, -174, -174,
1844      -174,   61,   61,   61,   61,   61,   61,   61,  196,   61,
1845        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1846        61,   61,   61, -174
1847     },
1848
1849     {
1850         9, -175, -175, -175, -175, -175, -175,   57, -175, -175,
1851      -175, -175, -175,   61,   61,   61, -175, -175, -175, -175,
1852      -175,   61,  197,   61,   61,   61,   61,   61,   61,   61,
1853        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1854        61,   61,   61, -175
1855
1856     },
1857
1858     {
1859         9, -176, -176, -176, -176, -176, -176,   57, -176, -176,
1860      -176, -176, -176,   61,   61,   61, -176, -176, -176, -176,
1861      -176,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1862        61,  198,   61,   61,   61,   61,   61,   61,   61,   61,
1863        61,   61,   61, -176
1864     },
1865
1866     {
1867         9, -177, -177, -177, -177, -177, -177,   57, -177, -177,
1868      -177, -177, -177,   61,   61,   61, -177, -177, -177, -177,
1869      -177,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1870        61,   61,   61,   61,   61,  199,   61,   61,   61,   61,
1871        61,   61,   61, -177
1872
1873     },
1874
1875     {
1876         9, -178, -178, -178, -178, -178, -178,   57, -178, -178,
1877      -178, -178, -178,   61,   61,   61, -178, -178, -178, -178,
1878      -178,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1879        61,   61,   61,   61,  200,   61,   61,   61,   61,   61,
1880        61,   61,   61, -178
1881     },
1882
1883     {
1884         9, -179, -179, -179, -179, -179, -179,   57, -179, -179,
1885      -179, -179, -179,   61,   61,   61, -179, -179, -179, -179,
1886      -179,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1887        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1888        61,   61,   61, -179
1889
1890     },
1891
1892     {
1893         9, -180, -180, -180, -180, -180, -180,   57, -180, -180,
1894      -180, -180, -180,   61,   61,   61, -180, -180, -180, -180,
1895      -180,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1896        61,   61,   61,   61,   61,   61,   61,   61,  201,   61,
1897        61,   61,   61, -180
1898     },
1899
1900     {
1901         9, -181, -181, -181, -181, -181, -181,   57, -181, -181,
1902      -181, -181, -181,   61,   61,   61, -181, -181, -181, -181,
1903      -181,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1904        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1905        61,   61,   61, -181
1906
1907     },
1908
1909     {
1910         9, -182, -182, -182, -182, -182, -182,   57, -182, -182,
1911      -182, -182, -182,   61,   61,   61, -182, -182, -182, -182,
1912      -182,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1913        61,   61,   61,   61,  202,   61,   61,   61,   61,   61,
1914        61,   61,   61, -182
1915     },
1916
1917     {
1918         9, -183, -183, -183, -183, -183, -183,   57, -183, -183,
1919      -183, -183, -183,   61,   61,   61, -183, -183, -183, -183,
1920      -183,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1921       203,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1922        61,   61,   61, -183
1923
1924     },
1925
1926     {
1927         9, -184, -184, -184, -184, -184, -184,   57, -184, -184,
1928      -184, -184, -184,   61,   61,   61, -184, -184, -184, -184,
1929      -184,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1930        61,   61,   61,   61,   61,   61,   61,   61,  204,   61,
1931        61,   61,   61, -184
1932     },
1933
1934     {
1935         9, -185, -185, -185, -185, -185, -185,   57, -185, -185,
1936      -185, -185, -185,   61,   61,   61, -185, -185, -185, -185,
1937      -185,   61,   61,   61,   61,   61,   61,  205,   61,   61,
1938        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1939        61,   61,   61, -185
1940
1941     },
1942
1943     {
1944         9, -186, -186, -186, -186, -186, -186,   57, -186, -186,
1945      -186, -186, -186,   61,   61,   61, -186, -186, -186, -186,
1946      -186,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1947        61,   61,   61,   61,   61,   61,   61,  206,   61,   61,
1948        61,   61,   61, -186
1949     },
1950
1951     {
1952         9, -187, -187, -187, -187, -187, -187,   57, -187, -187,
1953      -187, -187, -187,   61,   61,   61, -187, -187, -187, -187,
1954      -187,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1955       207,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1956        61,   61,   61, -187
1957
1958     },
1959
1960     {
1961         9, -188, -188, -188, -188, -188, -188,   57, -188, -188,
1962      -188, -188, -188,   61,   61,   61, -188, -188, -188, -188,
1963      -188,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1964        61,   61,   61,   61,   61,   61,   61,   61,   61,  208,
1965        61,   61,   61, -188
1966     },
1967
1968     {
1969         9, -189, -189, -189, -189, -189, -189,   57, -189, -189,
1970      -189, -189, -189,   61,   61,   61, -189, -189, -189, -189,
1971      -189,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1972        61,   61,   61,  209,   61,   61,   61,   61,   61,   61,
1973        61,   61,   61, -189
1974
1975     },
1976
1977     {
1978         9, -190, -190, -190, -190, -190, -190,   57, -190, -190,
1979      -190, -190, -190,   61,   61,   61, -190, -190, -190, -190,
1980      -190,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1981        61,   61,   61,  210,   61,   61,   61,   61,   61,   61,
1982        61,   61,   61, -190
1983     },
1984
1985     {
1986         9, -191, -191, -191, -191, -191, -191,   57, -191, -191,
1987      -191, -191, -191,   61,   61,   61, -191, -191, -191, -191,
1988      -191,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1989        61,   61,   61,   61,   61,   61,   61,  211,   61,   61,
1990        61,   61,   61, -191
1991
1992     },
1993
1994     {
1995         9, -192, -192, -192, -192, -192, -192,   57, -192, -192,
1996      -192, -192, -192,   61,   61,   61, -192, -192, -192, -192,
1997      -192,   61,  212,   61,   61,   61,   61,   61,   61,   61,
1998        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
1999        61,   61,   61, -192
2000     },
2001
2002     {
2003         9, -193, -193, -193, -193, -193, -193,   57, -193, -193,
2004      -193, -193, -193,   61,   61,   61, -193, -193, -193, -193,
2005      -193,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2006        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2007        61,   61,   61, -193
2008
2009     },
2010
2011     {
2012         9, -194, -194, -194, -194, -194, -194,   57, -194, -194,
2013      -194, -194, -194,   61,   61,   61, -194, -194, -194, -194,
2014      -194,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2015        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2016        61,   61,   61, -194
2017     },
2018
2019     {
2020         9, -195, -195, -195, -195, -195, -195,   57, -195, -195,
2021      -195, -195, -195,   61,   61,   61, -195, -195, -195, -195,
2022      -195,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2023        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2024        61,   61,   61, -195
2025
2026     },
2027
2028     {
2029         9, -196, -196, -196, -196, -196, -196,   57, -196, -196,
2030      -196, -196, -196,   61,   61,   61, -196, -196, -196, -196,
2031      -196,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2032        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2033        61,   61,   61, -196
2034     },
2035
2036     {
2037         9, -197, -197, -197, -197, -197, -197,   57, -197, -197,
2038      -197, -197, -197,   61,   61,   61, -197, -197, -197, -197,
2039      -197,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2040        61,   61,   61,   61,   61,   61,   61,   61,  213,   61,
2041        61,   61,   61, -197
2042
2043     },
2044
2045     {
2046         9, -198, -198, -198, -198, -198, -198,   57, -198, -198,
2047      -198, -198, -198,   61,   61,   61, -198, -198, -198, -198,
2048      -198,   61,   61,   61,   61,   61,  214,   61,   61,   61,
2049        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2050        61,   61,   61, -198
2051     },
2052
2053     {
2054         9, -199, -199, -199, -199, -199, -199,   57, -199, -199,
2055      -199, -199, -199,  215,   61,   61, -199, -199, -199, -199,
2056      -199,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2057        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2058        61,   61,   61, -199
2059
2060     },
2061
2062     {
2063         9, -200, -200, -200, -200, -200, -200,   57, -200, -200,
2064      -200, -200, -200,   61,   61,   61, -200, -200, -200, -200,
2065      -200,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2066        61,   61,   61,  216,   61,   61,   61,   61,   61,   61,
2067        61,   61,   61, -200
2068     },
2069
2070     {
2071         9, -201, -201, -201, -201, -201, -201,   57, -201, -201,
2072      -201, -201, -201,   61,   61,   61, -201, -201, -201, -201,
2073      -201,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2074        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2075        61,   61,   61, -201
2076
2077     },
2078
2079     {
2080         9, -202, -202, -202, -202, -202, -202,   57, -202, -202,
2081      -202, -202, -202,   61,   61,   61, -202, -202, -202, -202,
2082      -202,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2083        61,  217,   61,   61,   61,   61,   61,   61,   61,   61,
2084        61,   61,   61, -202
2085     },
2086
2087     {
2088         9, -203, -203, -203, -203, -203, -203,   57, -203, -203,
2089      -203, -203, -203,   61,   61,   61, -203, -203, -203, -203,
2090      -203,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2091        61,   61,   61,   61,   61,   61,   61,  218,   61,   61,
2092        61,   61,   61, -203
2093
2094     },
2095
2096     {
2097         9, -204, -204, -204, -204, -204, -204,   57, -204, -204,
2098      -204, -204, -204,   61,   61,   61, -204, -204, -204, -204,
2099      -204,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2100        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2101        61,   61,   61, -204
2102     },
2103
2104     {
2105         9, -205, -205, -205, -205, -205, -205,   57, -205, -205,
2106      -205, -205, -205,   61,   61,   61, -205, -205, -205, -205,
2107      -205,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2108       219,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2109        61,   61,   61, -205
2110
2111     },
2112
2113     {
2114         9, -206, -206, -206, -206, -206, -206,   57, -206, -206,
2115      -206, -206, -206,   61,   61,   61, -206, -206, -206, -206,
2116      -206,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2117        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2118        61,   61,   61, -206
2119     },
2120
2121     {
2122         9, -207, -207, -207, -207, -207, -207,   57, -207, -207,
2123      -207, -207, -207,   61,   61,   61, -207, -207, -207, -207,
2124      -207,   61,   61,   61,  220,   61,   61,   61,   61,   61,
2125        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2126        61,   61,   61, -207
2127
2128     },
2129
2130     {
2131         9, -208, -208, -208, -208, -208, -208,   57, -208, -208,
2132      -208, -208, -208,   61,   61,   61, -208, -208, -208, -208,
2133      -208,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2134        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2135        61,   61,   61, -208
2136     },
2137
2138     {
2139         9, -209, -209, -209, -209, -209, -209,   57, -209, -209,
2140      -209, -209, -209,   61,   61,   61, -209, -209, -209, -209,
2141      -209,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2142        61,   61,   61,   61,   61,   61,   61,   61,   61,  221,
2143        61,   61,   61, -209
2144
2145     },
2146
2147     {
2148         9, -210, -210, -210, -210, -210, -210,   57, -210, -210,
2149      -210, -210, -210,   61,   61,   61, -210, -210, -210, -210,
2150      -210,   61,   61,   61,   61,   61,   61,  222,   61,   61,
2151        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2152        61,   61,   61, -210
2153     },
2154
2155     {
2156         9, -211, -211, -211, -211, -211, -211,   57, -211, -211,
2157      -211, -211, -211,   61,   61,   61, -211, -211, -211, -211,
2158      -211,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2159        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2160        61,   61,   61, -211
2161
2162     },
2163
2164     {
2165         9, -212, -212, -212, -212, -212, -212,   57, -212, -212,
2166      -212, -212, -212,   61,   61,   61, -212, -212, -212, -212,
2167      -212,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2168        61,  223,   61,   61,   61,   61,   61,   61,   61,   61,
2169        61,   61,   61, -212
2170     },
2171
2172     {
2173         9, -213, -213, -213, -213, -213, -213,   57, -213, -213,
2174      -213, -213, -213,   61,   61,   61, -213, -213, -213, -213,
2175      -213,   61,   61,   61,   61,   61,  224,   61,   61,   61,
2176        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2177        61,   61,   61, -213
2178
2179     },
2180
2181     {
2182         9, -214, -214, -214, -214, -214, -214,   57, -214, -214,
2183      -214, -214, -214,   61,   61,   61, -214, -214, -214, -214,
2184      -214,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2185        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2186        61,   61,   61, -214
2187     },
2188
2189     {
2190         9, -215, -215, -215, -215, -215, -215,   57, -215, -215,
2191      -215, -215, -215,  225,   61,   61, -215, -215, -215, -215,
2192      -215,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2193        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2194        61,   61,   61, -215
2195
2196     },
2197
2198     {
2199         9, -216, -216, -216, -216, -216, -216,   57, -216, -216,
2200      -216, -216, -216,   61,   61,   61, -216, -216, -216, -216,
2201      -216,   61,   61,   61,   61,   61,   61,  226,   61,   61,
2202        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2203        61,   61,   61, -216
2204     },
2205
2206     {
2207         9, -217, -217, -217, -217, -217, -217,   57, -217, -217,
2208      -217, -217, -217,   61,   61,   61, -217, -217, -217, -217,
2209      -217,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2210        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2211        61,   61,   61, -217
2212
2213     },
2214
2215     {
2216         9, -218, -218, -218, -218, -218, -218,   57, -218, -218,
2217      -218, -218, -218,   61,   61,   61, -218, -218, -218, -218,
2218      -218,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2219        61,   61,   61,   61,   61,   61,   61,   61,  227,   61,
2220        61,   61,   61, -218
2221     },
2222
2223     {
2224         9, -219, -219, -219, -219, -219, -219,   57, -219, -219,
2225      -219, -219, -219,   61,   61,   61, -219, -219, -219, -219,
2226      -219,   61,   61,   61,   61,   61,   61,   61,  228,   61,
2227        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2228        61,   61,   61, -219
2229
2230     },
2231
2232     {
2233         9, -220, -220, -220, -220, -220, -220,   57, -220, -220,
2234      -220, -220, -220,   61,   61,   61, -220, -220, -220, -220,
2235      -220,   61,   61,   61,   61,   61,  229,   61,   61,   61,
2236        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2237        61,   61,   61, -220
2238     },
2239
2240     {
2241         9, -221, -221, -221, -221, -221, -221,   57, -221, -221,
2242      -221, -221, -221,   61,   61,   61, -221, -221, -221, -221,
2243      -221,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2244        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2245        61,   61,   61, -221
2246
2247     },
2248
2249     {
2250         9, -222, -222, -222, -222, -222, -222,   57, -222, -222,
2251      -222, -222, -222,   61,   61,   61, -222, -222, -222, -222,
2252      -222,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2253       230,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2254        61,   61,   61, -222
2255     },
2256
2257     {
2258         9, -223, -223, -223, -223, -223, -223,   57, -223, -223,
2259      -223, -223, -223,   61,   61,   61, -223, -223, -223, -223,
2260      -223,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2261        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2262        61,   61,   61, -223
2263
2264     },
2265
2266     {
2267         9, -224, -224, -224, -224, -224, -224,   57, -224, -224,
2268      -224, -224, -224,   61,   61,   61, -224, -224, -224, -224,
2269      -224,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2270        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2271        61,   61,   61, -224
2272     },
2273
2274     {
2275         9, -225, -225, -225, -225, -225, -225,   57, -225, -225,
2276      -225, -225, -225,  137,   61,   61, -225, -225, -225, -225,
2277      -225,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2278        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2279        61,   61,   61, -225
2280
2281     },
2282
2283     {
2284         9, -226, -226, -226, -226, -226, -226,   57, -226, -226,
2285      -226, -226, -226,   61,   61,   61, -226, -226, -226, -226,
2286      -226,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2287       231,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2288        61,   61,   61, -226
2289     },
2290
2291     {
2292         9, -227, -227, -227, -227, -227, -227,   57, -227, -227,
2293      -227, -227, -227,   61,   61,   61, -227, -227, -227, -227,
2294      -227,   61,  232,   61,   61,   61,   61,   61,   61,   61,
2295        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2296        61,   61,   61, -227
2297
2298     },
2299
2300     {
2301         9, -228, -228, -228, -228, -228, -228,   57, -228, -228,
2302      -228, -228, -228,   61,   61,   61, -228, -228, -228, -228,
2303      -228,  233,   61,   61,   61,   61,   61,   61,   61,   61,
2304        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2305        61,   61,   61, -228
2306     },
2307
2308     {
2309         9, -229, -229, -229, -229, -229, -229,   57, -229, -229,
2310      -229, -229, -229,   61,   61,   61, -229, -229, -229, -229,
2311      -229,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2312        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2313        61,   61,   61, -229
2314
2315     },
2316
2317     {
2318         9, -230, -230, -230, -230, -230, -230,   57, -230, -230,
2319      -230, -230, -230,   61,   61,   61, -230, -230, -230, -230,
2320      -230,   61,   61,   61,   61,   61,   61,   61,  234,   61,
2321        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2322        61,   61,   61, -230
2323     },
2324
2325     {
2326         9, -231, -231, -231, -231, -231, -231,   57, -231, -231,
2327      -231, -231, -231,   61,   61,   61, -231, -231, -231, -231,
2328      -231,   61,   61,   61,   61,   61,   61,   61,  235,   61,
2329        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2330        61,   61,   61, -231
2331
2332     },
2333
2334     {
2335         9, -232, -232, -232, -232, -232, -232,   57, -232, -232,
2336      -232, -232, -232,   61,   61,   61, -232, -232, -232, -232,
2337      -232,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2338        61,   61,   61,   61,   61,   61,   61,   61,  236,   61,
2339        61,   61,   61, -232
2340     },
2341
2342     {
2343         9, -233, -233, -233, -233, -233, -233,   57, -233, -233,
2344      -233, -233, -233,   61,   61,   61, -233, -233, -233, -233,
2345      -233,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2346        61,  237,   61,   61,   61,   61,   61,   61,   61,   61,
2347        61,   61,   61, -233
2348
2349     },
2350
2351     {
2352         9, -234, -234, -234, -234, -234, -234,   57, -234, -234,
2353      -234, -234, -234,   61,   61,   61, -234, -234, -234, -234,
2354      -234,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2355        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2356        61,   61,   61, -234
2357     },
2358
2359     {
2360         9, -235, -235, -235, -235, -235, -235,   57, -235, -235,
2361      -235, -235, -235,   61,   61,   61, -235, -235, -235, -235,
2362      -235,  238,   61,   61,   61,   61,   61,   61,   61,   61,
2363        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2364        61,   61,   61, -235
2365
2366     },
2367
2368     {
2369         9, -236, -236, -236, -236, -236, -236,   57, -236, -236,
2370      -236, -236, -236,   61,   61,   61, -236, -236, -236, -236,
2371      -236,   61,   61,   61,   61,   61,  239,   61,   61,   61,
2372        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2373        61,   61,   61, -236
2374     },
2375
2376     {
2377         9, -237, -237, -237, -237, -237, -237,   57, -237, -237,
2378      -237, -237, -237,   61,   61,   61, -237, -237, -237, -237,
2379      -237,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2380       240,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2381        61,   61,   61, -237
2382
2383     },
2384
2385     {
2386         9, -238, -238, -238, -238, -238, -238,   57, -238, -238,
2387      -238, -238, -238,   61,   61,   61, -238, -238, -238, -238,
2388      -238,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2389        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2390        61,   61,  241, -238
2391     },
2392
2393     {
2394         9, -239, -239, -239, -239, -239, -239,   57, -239, -239,
2395      -239, -239, -239,   61,   61,   61, -239, -239, -239, -239,
2396      -239,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2397        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2398        61,   61,   61, -239
2399
2400     },
2401
2402     {
2403         9, -240, -240, -240, -240, -240, -240,   57, -240, -240,
2404      -240, -240, -240,   61,   61,   61, -240, -240, -240, -240,
2405      -240,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2406        61,   61,   61,   61,   61,   61,   61,  242,   61,   61,
2407        61,   61,   61, -240
2408     },
2409
2410     {
2411         9, -241, -241, -241, -241, -241, -241,   57, -241, -241,
2412      -241, -241, -241,   61,   61,   61, -241, -241, -241, -241,
2413      -241,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2414        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2415        61,   61,   61, -241
2416
2417     },
2418
2419     {
2420         9, -242, -242, -242, -242, -242, -242,   57, -242, -242,
2421      -242, -242, -242,   61,   61,   61, -242, -242, -242, -242,
2422      -242,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2423        61,   61,   61,   61,   61,   61,   61,   61,  243,   61,
2424        61,   61,   61, -242
2425     },
2426
2427     {
2428         9, -243, -243, -243, -243, -243, -243,   57, -243, -243,
2429      -243, -243, -243,   61,   61,   61, -243, -243, -243, -243,
2430      -243,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2431        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2432        61,   61,   61, -243
2433
2434     },
2435
2436     } ;
2437
2438 static yy_state_type yy_get_previous_state ( void );
2439 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
2440 static int yy_get_next_buffer ( void );
2441 static void yynoreturn yy_fatal_error ( const char* msg  );
2442
2443 /* Done after the current pattern has been matched and before the
2444  * corresponding action - sets up yytext.
2445  */
2446 #define YY_DO_BEFORE_ACTION \
2447         (yytext_ptr) = yy_bp; \
2448         yyleng = (int) (yy_cp - yy_bp); \
2449         (yy_hold_char) = *yy_cp; \
2450         *yy_cp = '\0'; \
2451         (yy_c_buf_p) = yy_cp;
2452 #define YY_NUM_RULES 67
2453 #define YY_END_OF_BUFFER 68
2454 /* This struct is not used in this scanner,
2455    but its presence is necessary. */
2456 struct yy_trans_info
2457         {
2458         flex_int32_t yy_verify;
2459         flex_int32_t yy_nxt;
2460         };
2461 static const flex_int16_t yy_accept[244] =
2462     {   0,
2463         2,    2,    0,    0,    0,    0,    0,    0,   68,   54,
2464         2,    4,   46,   51,    1,   53,   54,   47,   48,   54,
2465        52,   52,   54,   42,   40,   44,   54,   52,   52,   52,
2466        52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
2467        52,   54,   55,   57,   56,   66,   63,   65,   59,   62,
2468        61,   58,   60,    2,   41,    1,   53,   39,   50,   52,
2469        52,   49,   43,   45,    3,   52,   52,   52,   52,   52,
2470        52,   52,   20,   52,   52,   52,   52,   52,   27,   52,
2471        52,   52,   52,   52,   52,   52,   52,   52,   38,   55,
2472        55,   66,   63,   65,   64,   59,   58,   60,   52,   52,
2473
2474        52,   52,   52,   52,   52,   52,   52,   52,   19,   52,
2475        22,   52,   52,   52,   52,   52,   52,   52,   52,   52,
2476        52,   52,   52,   52,   52,    6,   52,   52,   52,   52,
2477        52,   52,   52,   52,   52,   52,   18,   52,   52,   24,
2478        52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
2479        52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
2480        52,   16,   52,   21,   52,   52,   52,   52,   52,   31,
2481        32,   52,   52,   52,   52,   52,   52,   52,    7,   52,
2482         9,   52,   52,   52,   52,   52,   52,   52,   52,   52,
2483        52,   28,   30,   33,   34,   35,   52,   52,   52,   52,
2484
2485         8,   52,   52,   12,   52,   14,   52,   17,   52,   52,
2486        26,   52,   52,   37,   52,   52,   10,   52,   52,   52,
2487        23,   52,   29,   36,   52,   52,   52,   52,   15,   52,
2488        52,   52,   52,   25,   52,   52,   52,   52,   11,   52,
2489         5,   52,   13
2490     } ;
2491
2492 static const YY_CHAR yy_ec[256] =
2493     {   0,
2494         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
2495         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2496         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2497         1,    2,    4,    5,    6,    7,    1,    8,    9,   10,
2498        11,    1,   12,    1,   13,   14,   14,   15,   15,   15,
2499        15,   15,   15,   15,   15,   15,   15,   16,    1,   17,
2500        18,   19,    1,    1,   15,   15,   15,   15,   15,   15,
2501        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
2502        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
2503         1,   20,    1,    1,   21,    1,   22,   23,   24,   25,
2504
2505        26,   27,   28,   29,   30,   15,   15,   31,   32,   33,
2506        34,   35,   15,   36,   37,   38,   39,   40,   15,   41,
2507        42,   15,    1,   43,    1,    1,    1,    1,    1,    1,
2508         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2509         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2510         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2511         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2512         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2513         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2514         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2515
2516         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2517         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2518         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2519         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2520         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2521         1,    1,    1,    1,    1
2522     } ;
2523
2524 /* Table of booleans, true if rule could match eol. */
2525 static const flex_int32_t yy_rule_can_match_eol[68] =
2526     {   0,
2527 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2528     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2529     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
2530     0, 0, 1, 0, 1, 1, 0, 0,     };
2531
2532 extern int yy_flex_debug;
2533 int yy_flex_debug = 0;
2534
2535 /* The intent behind this definition is that it'll catch
2536  * any uses of REJECT which flex missed.
2537  */
2538 #define REJECT reject_used_but_not_detected
2539 #define yymore() yymore_used_but_not_detected
2540 #define YY_MORE_ADJ 0
2541 #define YY_RESTORE_YY_MORE_OFFSET
2542 char *yytext;
2543 /* SPDX-License-Identifier: GPL-2.0 */
2544 /*
2545  * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
2546  */
2547
2548 #include <assert.h>
2549 #include <limits.h>
2550 #include <stdio.h>
2551 #include <stdlib.h>
2552 #include <string.h>
2553 #include <unistd.h>
2554 #include <glob.h>
2555 #include <libgen.h>
2556
2557 #include "lkc.h"
2558 #include "parser.tab.h"
2559
2560 #define YY_DECL         static int yylex1(void)
2561
2562 #define START_STRSIZE   16
2563
2564 static struct {
2565         struct file *file;
2566         int lineno;
2567 } current_pos;
2568
2569 static int prev_prev_token = T_EOL;
2570 static int prev_token = T_EOL;
2571 static char *text;
2572 static int text_size, text_asize;
2573
2574 struct buffer {
2575         struct buffer *parent;
2576         YY_BUFFER_STATE state;
2577 };
2578
2579 struct buffer *current_buf;
2580
2581 static int last_ts, first_ts;
2582
2583 static char *expand_token(const char *in, size_t n);
2584 static void append_expanded_string(const char *in);
2585 static void zconf_endhelp(void);
2586 static void zconf_endfile(void);
2587
2588 static void new_string(void)
2589 {
2590         text = xmalloc(START_STRSIZE);
2591         text_asize = START_STRSIZE;
2592         text_size = 0;
2593         *text = 0;
2594 }
2595
2596 static void append_string(const char *str, int size)
2597 {
2598         int new_size = text_size + size + 1;
2599         if (new_size > text_asize) {
2600                 new_size += START_STRSIZE - 1;
2601                 new_size &= -START_STRSIZE;
2602                 text = xrealloc(text, new_size);
2603                 text_asize = new_size;
2604         }
2605         memcpy(text + text_size, str, size);
2606         text_size += size;
2607         text[text_size] = 0;
2608 }
2609
2610 static void alloc_string(const char *str, int size)
2611 {
2612         text = xmalloc(size + 1);
2613         memcpy(text, str, size);
2614         text[size] = 0;
2615 }
2616
2617 static void warn_ignored_character(char chr)
2618 {
2619         fprintf(stderr,
2620                 "%s:%d:warning: ignoring unsupported character '%c'\n",
2621                 current_file->name, yylineno, chr);
2622 }
2623
2624 #define INITIAL 0
2625 #define ASSIGN_VAL 1
2626 #define HELP 2
2627 #define STRING 3
2628
2629 #ifndef YY_NO_UNISTD_H
2630 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2631  * down here because we want the user's section 1 to have been scanned first.
2632  * The user has a chance to override it with an option.
2633  */
2634 #include <unistd.h>
2635 #endif
2636
2637 #ifndef YY_EXTRA_TYPE
2638 #define YY_EXTRA_TYPE void *
2639 #endif
2640
2641 static int yy_init_globals ( void );
2642
2643 /* Accessor methods to globals.
2644    These are made visible to non-reentrant scanners for convenience. */
2645
2646 int yylex_destroy ( void );
2647
2648 int yyget_debug ( void );
2649
2650 void yyset_debug ( int debug_flag  );
2651
2652 YY_EXTRA_TYPE yyget_extra ( void );
2653
2654 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
2655
2656 FILE *yyget_in ( void );
2657
2658 void yyset_in  ( FILE * _in_str  );
2659
2660 FILE *yyget_out ( void );
2661
2662 void yyset_out  ( FILE * _out_str  );
2663
2664                         int yyget_leng ( void );
2665
2666 char *yyget_text ( void );
2667
2668 int yyget_lineno ( void );
2669
2670 void yyset_lineno ( int _line_number  );
2671
2672 /* Macros after this point can all be overridden by user definitions in
2673  * section 1.
2674  */
2675
2676 #ifndef YY_SKIP_YYWRAP
2677 #ifdef __cplusplus
2678 extern "C" int yywrap ( void );
2679 #else
2680 extern int yywrap ( void );
2681 #endif
2682 #endif
2683
2684 #ifndef YY_NO_UNPUT
2685     
2686     static void yyunput ( int c, char *buf_ptr  );
2687     
2688 #endif
2689
2690 #ifndef yytext_ptr
2691 static void yy_flex_strncpy ( char *, const char *, int );
2692 #endif
2693
2694 #ifdef YY_NEED_STRLEN
2695 static int yy_flex_strlen ( const char * );
2696 #endif
2697
2698 #ifndef YY_NO_INPUT
2699 #ifdef __cplusplus
2700 static int yyinput ( void );
2701 #else
2702 static int input ( void );
2703 #endif
2704
2705 #endif
2706
2707 /* Amount of stuff to slurp up with each read. */
2708 #ifndef YY_READ_BUF_SIZE
2709 #ifdef __ia64__
2710 /* On IA-64, the buffer size is 16k, not 8k */
2711 #define YY_READ_BUF_SIZE 16384
2712 #else
2713 #define YY_READ_BUF_SIZE 8192
2714 #endif /* __ia64__ */
2715 #endif
2716
2717 /* Copy whatever the last rule matched to the standard output. */
2718 #ifndef ECHO
2719 /* This used to be an fputs(), but since the string might contain NUL's,
2720  * we now use fwrite().
2721  */
2722 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2723 #endif
2724
2725 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2726  * is returned in "result".
2727  */
2728 #ifndef YY_INPUT
2729 #define YY_INPUT(buf,result,max_size) \
2730         errno=0; \
2731         while ( (result = (int) read( fileno(yyin), buf, (yy_size_t) max_size )) < 0 ) \
2732         { \
2733                 if( errno != EINTR) \
2734                 { \
2735                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
2736                         break; \
2737                 } \
2738                 errno=0; \
2739                 clearerr(yyin); \
2740         }\
2741 \
2742
2743 #endif
2744
2745 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2746  * we don't want an extra ';' after the "return" because that will cause
2747  * some compilers to complain about unreachable statements.
2748  */
2749 #ifndef yyterminate
2750 #define yyterminate() return YY_NULL
2751 #endif
2752
2753 /* Number of entries by which start-condition stack grows. */
2754 #ifndef YY_START_STACK_INCR
2755 #define YY_START_STACK_INCR 25
2756 #endif
2757
2758 /* Report a fatal error. */
2759 #ifndef YY_FATAL_ERROR
2760 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2761 #endif
2762
2763 /* end tables serialization structures and prototypes */
2764
2765 /* Default declaration of generated scanner - a define so the user can
2766  * easily add parameters.
2767  */
2768 #ifndef YY_DECL
2769 #define YY_DECL_IS_OURS 1
2770
2771 extern int yylex (void);
2772
2773 #define YY_DECL int yylex (void)
2774 #endif /* !YY_DECL */
2775
2776 /* Code executed at the beginning of each rule, after yytext and yyleng
2777  * have been set up.
2778  */
2779 #ifndef YY_USER_ACTION
2780 #define YY_USER_ACTION
2781 #endif
2782
2783 /* Code executed at the end of each rule. */
2784 #ifndef YY_BREAK
2785 #define YY_BREAK /*LINTED*/break;
2786 #endif
2787
2788 #define YY_RULE_SETUP \
2789         YY_USER_ACTION
2790
2791 /** The main scanner function which does all the work.
2792  */
2793 YY_DECL
2794 {
2795         yy_state_type yy_current_state;
2796         char *yy_cp, *yy_bp;
2797         int yy_act;
2798     
2799         if ( !(yy_init) )
2800                 {
2801                 (yy_init) = 1;
2802
2803 #ifdef YY_USER_INIT
2804                 YY_USER_INIT;
2805 #endif
2806
2807                 if ( ! (yy_start) )
2808                         (yy_start) = 1; /* first start state */
2809
2810                 if ( ! yyin )
2811                         yyin = stdin;
2812
2813                 if ( ! yyout )
2814                         yyout = stdout;
2815
2816                 if ( ! YY_CURRENT_BUFFER ) {
2817                         yyensure_buffer_stack ();
2818                         YY_CURRENT_BUFFER_LVALUE =
2819                                 yy_create_buffer( yyin, YY_BUF_SIZE );
2820                 }
2821
2822                 yy_load_buffer_state(  );
2823                 }
2824
2825         {
2826
2827         int str = 0;
2828         int ts, i;
2829
2830         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
2831                 {
2832                 yy_cp = (yy_c_buf_p);
2833
2834                 /* Support of yytext. */
2835                 *yy_cp = (yy_hold_char);
2836
2837                 /* yy_bp points to the position in yy_ch_buf of the start of
2838                  * the current run.
2839                  */
2840                 yy_bp = yy_cp;
2841
2842                 yy_current_state = (yy_start);
2843 yy_match:
2844                 while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
2845                         ++yy_cp;
2846
2847                 yy_current_state = -yy_current_state;
2848
2849 yy_find_action:
2850                 yy_act = yy_accept[yy_current_state];
2851
2852                 YY_DO_BEFORE_ACTION;
2853
2854                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2855                         {
2856                         int yyl;
2857                         for ( yyl = 0; yyl < yyleng; ++yyl )
2858                                 if ( yytext[yyl] == '\n' )
2859                                         
2860     yylineno++;
2861 ;
2862                         }
2863
2864 do_action:      /* This label is used only to access EOF actions. */
2865
2866                 switch ( yy_act )
2867         { /* beginning of action switch */
2868 case 1:
2869 YY_RULE_SETUP
2870 /* ignore comment */
2871         YY_BREAK
2872 case 2:
2873 YY_RULE_SETUP
2874 /* whitespaces */
2875         YY_BREAK
2876 case 3:
2877 /* rule 3 can match eol */
2878 YY_RULE_SETUP
2879 /* escaped new line */
2880         YY_BREAK
2881 case 4:
2882 /* rule 4 can match eol */
2883 YY_RULE_SETUP
2884 return T_EOL;
2885         YY_BREAK
2886 case 5:
2887 YY_RULE_SETUP
2888 return T_ALLNOCONFIG_Y;
2889         YY_BREAK
2890 case 6:
2891 YY_RULE_SETUP
2892 return T_BOOL;
2893         YY_BREAK
2894 case 7:
2895 YY_RULE_SETUP
2896 return T_CHOICE;
2897         YY_BREAK
2898 case 8:
2899 YY_RULE_SETUP
2900 return T_COMMENT;
2901         YY_BREAK
2902 case 9:
2903 YY_RULE_SETUP
2904 return T_CONFIG;
2905         YY_BREAK
2906 case 10:
2907 YY_RULE_SETUP
2908 return T_DEF_BOOL;
2909         YY_BREAK
2910 case 11:
2911 YY_RULE_SETUP
2912 return T_DEF_TRISTATE;
2913         YY_BREAK
2914 case 12:
2915 YY_RULE_SETUP
2916 return T_DEFAULT;
2917         YY_BREAK
2918 case 13:
2919 YY_RULE_SETUP
2920 return T_DEFCONFIG_LIST;
2921         YY_BREAK
2922 case 14:
2923 YY_RULE_SETUP
2924 return T_DEPENDS;
2925         YY_BREAK
2926 case 15:
2927 YY_RULE_SETUP
2928 return T_ENDCHOICE;
2929         YY_BREAK
2930 case 16:
2931 YY_RULE_SETUP
2932 return T_ENDIF;
2933         YY_BREAK
2934 case 17:
2935 YY_RULE_SETUP
2936 return T_ENDMENU;
2937         YY_BREAK
2938 case 18:
2939 YY_RULE_SETUP
2940 return T_HELP;
2941         YY_BREAK
2942 case 19:
2943 YY_RULE_SETUP
2944 return T_HEX;
2945         YY_BREAK
2946 case 20:
2947 YY_RULE_SETUP
2948 return T_IF;
2949         YY_BREAK
2950 case 21:
2951 YY_RULE_SETUP
2952 return T_IMPLY;
2953         YY_BREAK
2954 case 22:
2955 YY_RULE_SETUP
2956 return T_INT;
2957         YY_BREAK
2958 case 23:
2959 YY_RULE_SETUP
2960 return T_MAINMENU;
2961         YY_BREAK
2962 case 24:
2963 YY_RULE_SETUP
2964 return T_MENU;
2965         YY_BREAK
2966 case 25:
2967 YY_RULE_SETUP
2968 return T_MENUCONFIG;
2969         YY_BREAK
2970 case 26:
2971 YY_RULE_SETUP
2972 return T_MODULES;
2973         YY_BREAK
2974 case 27:
2975 YY_RULE_SETUP
2976 return T_ON;
2977         YY_BREAK
2978 case 28:
2979 YY_RULE_SETUP
2980 return T_OPTION;
2981         YY_BREAK
2982 case 29:
2983 YY_RULE_SETUP
2984 return T_OPTIONAL;
2985         YY_BREAK
2986 case 30:
2987 YY_RULE_SETUP
2988 return T_PROMPT;
2989         YY_BREAK
2990 case 31:
2991 YY_RULE_SETUP
2992 return T_RANGE;
2993         YY_BREAK
2994 case 32:
2995 YY_RULE_SETUP
2996 return T_RESET;
2997         YY_BREAK
2998 case 33:
2999 YY_RULE_SETUP
3000 return T_SELECT;
3001         YY_BREAK
3002 case 34:
3003 YY_RULE_SETUP
3004 return T_SOURCE;
3005         YY_BREAK
3006 case 35:
3007 YY_RULE_SETUP
3008 return T_STRING;
3009         YY_BREAK
3010 case 36:
3011 YY_RULE_SETUP
3012 return T_TRISTATE;
3013         YY_BREAK
3014 case 37:
3015 YY_RULE_SETUP
3016 return T_VISIBLE;
3017         YY_BREAK
3018 case 38:
3019 YY_RULE_SETUP
3020 return T_OR;
3021         YY_BREAK
3022 case 39:
3023 YY_RULE_SETUP
3024 return T_AND;
3025         YY_BREAK
3026 case 40:
3027 YY_RULE_SETUP
3028 return T_EQUAL;
3029         YY_BREAK
3030 case 41:
3031 YY_RULE_SETUP
3032 return T_UNEQUAL;
3033         YY_BREAK
3034 case 42:
3035 YY_RULE_SETUP
3036 return T_LESS;
3037         YY_BREAK
3038 case 43:
3039 YY_RULE_SETUP
3040 return T_LESS_EQUAL;
3041         YY_BREAK
3042 case 44:
3043 YY_RULE_SETUP
3044 return T_GREATER;
3045         YY_BREAK
3046 case 45:
3047 YY_RULE_SETUP
3048 return T_GREATER_EQUAL;
3049         YY_BREAK
3050 case 46:
3051 YY_RULE_SETUP
3052 return T_NOT;
3053         YY_BREAK
3054 case 47:
3055 YY_RULE_SETUP
3056 return T_OPEN_PAREN;
3057         YY_BREAK
3058 case 48:
3059 YY_RULE_SETUP
3060 return T_CLOSE_PAREN;
3061         YY_BREAK
3062 case 49:
3063 YY_RULE_SETUP
3064 return T_COLON_EQUAL;
3065         YY_BREAK
3066 case 50:
3067 YY_RULE_SETUP
3068 return T_PLUS_EQUAL;
3069         YY_BREAK
3070 case 51:
3071 YY_RULE_SETUP
3072 {
3073                                 str = yytext[0];
3074                                 new_string();
3075                                 BEGIN(STRING);
3076                         }
3077         YY_BREAK
3078 case 52:
3079 YY_RULE_SETUP
3080 {
3081                                 alloc_string(yytext, yyleng);
3082                                 yylval.string = text;
3083                                 return T_WORD;
3084                         }
3085         YY_BREAK
3086 case 53:
3087 YY_RULE_SETUP
3088 {
3089                                 /* this token includes at least one '$' */
3090                                 yylval.string = expand_token(yytext, yyleng);
3091                                 if (strlen(yylval.string))
3092                                         return T_WORD;
3093                                 free(yylval.string);
3094                         }
3095         YY_BREAK
3096 case 54:
3097 YY_RULE_SETUP
3098 warn_ignored_character(*yytext);
3099         YY_BREAK
3100
3101 case 55:
3102 YY_RULE_SETUP
3103 {
3104                 alloc_string(yytext, yyleng);
3105                 yylval.string = text;
3106                 return T_ASSIGN_VAL;
3107         }
3108         YY_BREAK
3109 case 56:
3110 /* rule 56 can match eol */
3111 YY_RULE_SETUP
3112 { BEGIN(INITIAL); return T_EOL; }
3113         YY_BREAK
3114 case 57:
3115 YY_RULE_SETUP
3116
3117         YY_BREAK
3118
3119 case 58:
3120 YY_RULE_SETUP
3121 append_expanded_string(yytext);
3122         YY_BREAK
3123 case 59:
3124 YY_RULE_SETUP
3125 {
3126                 append_string(yytext, yyleng);
3127         }
3128         YY_BREAK
3129 case 60:
3130 YY_RULE_SETUP
3131 {
3132                 append_string(yytext + 1, yyleng - 1);
3133         }
3134         YY_BREAK
3135 case 61:
3136 YY_RULE_SETUP
3137 {
3138                 if (str == yytext[0]) {
3139                         BEGIN(INITIAL);
3140                         yylval.string = text;
3141                         return T_WORD_QUOTE;
3142                 } else
3143                         append_string(yytext, 1);
3144         }
3145         YY_BREAK
3146 case 62:
3147 /* rule 62 can match eol */
3148 YY_RULE_SETUP
3149 {
3150                 fprintf(stderr,
3151                         "%s:%d:warning: multi-line strings not supported\n",
3152                         zconf_curname(), zconf_lineno());
3153                 unput('\n');
3154                 BEGIN(INITIAL);
3155                 yylval.string = text;
3156                 return T_WORD_QUOTE;
3157         }
3158         YY_BREAK
3159 case YY_STATE_EOF(STRING):
3160 {
3161                 BEGIN(INITIAL);
3162                 yylval.string = text;
3163                 return T_WORD_QUOTE;
3164         }
3165         YY_BREAK
3166
3167 case 63:
3168 YY_RULE_SETUP
3169 {
3170                 ts = 0;
3171                 for (i = 0; i < yyleng; i++) {
3172                         if (yytext[i] == '\t')
3173                                 ts = (ts & ~7) + 8;
3174                         else
3175                                 ts++;
3176                 }
3177                 last_ts = ts;
3178                 if (first_ts) {
3179                         if (ts < first_ts) {
3180                                 zconf_endhelp();
3181                                 return T_HELPTEXT;
3182                         }
3183                         ts -= first_ts;
3184                         while (ts > 8) {
3185                                 append_string("        ", 8);
3186                                 ts -= 8;
3187                         }
3188                         append_string("        ", ts);
3189                 }
3190         }
3191         YY_BREAK
3192 case 64:
3193 /* rule 64 can match eol */
3194 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3195 YY_LINENO_REWIND_TO(yy_cp - 1);
3196 (yy_c_buf_p) = yy_cp -= 1;
3197 YY_DO_BEFORE_ACTION; /* set up yytext again */
3198 YY_RULE_SETUP
3199 {
3200                 zconf_endhelp();
3201                 return T_HELPTEXT;
3202         }
3203         YY_BREAK
3204 case 65:
3205 /* rule 65 can match eol */
3206 YY_RULE_SETUP
3207 {
3208                 append_string("\n", 1);
3209         }
3210         YY_BREAK
3211 case 66:
3212 YY_RULE_SETUP
3213 {
3214                 while (yyleng) {
3215                         if ((yytext[yyleng-1] != ' ') && (yytext[yyleng-1] != '\t'))
3216                                 break;
3217                         yyleng--;
3218                 }
3219                 append_string(yytext, yyleng);
3220                 if (!first_ts)
3221                         first_ts = last_ts;
3222         }
3223         YY_BREAK
3224 case YY_STATE_EOF(HELP):
3225 {
3226                 zconf_endhelp();
3227                 return T_HELPTEXT;
3228         }
3229         YY_BREAK
3230
3231 case YY_STATE_EOF(INITIAL):
3232 case YY_STATE_EOF(ASSIGN_VAL):
3233 {
3234         BEGIN(INITIAL);
3235
3236         if (prev_token != T_EOL && prev_token != T_HELPTEXT)
3237                 fprintf(stderr, "%s:%d:warning: no new line at end of file\n",
3238                         current_file->name, yylineno);
3239
3240         if (current_file) {
3241                 zconf_endfile();
3242                 return T_EOL;
3243         }
3244         fclose(yyin);
3245         yyterminate();
3246 }
3247         YY_BREAK
3248 case 67:
3249 YY_RULE_SETUP
3250 YY_FATAL_ERROR( "flex scanner jammed" );
3251         YY_BREAK
3252
3253         case YY_END_OF_BUFFER:
3254                 {
3255                 /* Amount of text matched not including the EOB char. */
3256                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3257
3258                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3259                 *yy_cp = (yy_hold_char);
3260                 YY_RESTORE_YY_MORE_OFFSET
3261
3262                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3263                         {
3264                         /* We're scanning a new file or input source.  It's
3265                          * possible that this happened because the user
3266                          * just pointed yyin at a new source and called
3267                          * yylex().  If so, then we have to assure
3268                          * consistency between YY_CURRENT_BUFFER and our
3269                          * globals.  Here is the right place to do so, because
3270                          * this is the first action (other than possibly a
3271                          * back-up) that will match for the new input source.
3272                          */
3273                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3274                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3275                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3276                         }
3277
3278                 /* Note that here we test for yy_c_buf_p "<=" to the position
3279                  * of the first EOB in the buffer, since yy_c_buf_p will
3280                  * already have been incremented past the NUL character
3281                  * (since all states make transitions on EOB to the
3282                  * end-of-buffer state).  Contrast this with the test
3283                  * in input().
3284                  */
3285                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3286                         { /* This was really a NUL. */
3287                         yy_state_type yy_next_state;
3288
3289                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3290
3291                         yy_current_state = yy_get_previous_state(  );
3292
3293                         /* Okay, we're now positioned to make the NUL
3294                          * transition.  We couldn't have
3295                          * yy_get_previous_state() go ahead and do it
3296                          * for us because it doesn't know how to deal
3297                          * with the possibility of jamming (and we don't
3298                          * want to build jamming into it because then it
3299                          * will run more slowly).
3300                          */
3301
3302                         yy_next_state = yy_try_NUL_trans( yy_current_state );
3303
3304                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3305
3306                         if ( yy_next_state )
3307                                 {
3308                                 /* Consume the NUL. */
3309                                 yy_cp = ++(yy_c_buf_p);
3310                                 yy_current_state = yy_next_state;
3311                                 goto yy_match;
3312                                 }
3313
3314                         else
3315                                 {
3316                                 yy_cp = (yy_c_buf_p);
3317                                 goto yy_find_action;
3318                                 }
3319                         }
3320
3321                 else switch ( yy_get_next_buffer(  ) )
3322                         {
3323                         case EOB_ACT_END_OF_FILE:
3324                                 {
3325                                 (yy_did_buffer_switch_on_eof) = 0;
3326
3327                                 if ( yywrap(  ) )
3328                                         {
3329                                         /* Note: because we've taken care in
3330                                          * yy_get_next_buffer() to have set up
3331                                          * yytext, we can now set up
3332                                          * yy_c_buf_p so that if some total
3333                                          * hoser (like flex itself) wants to
3334                                          * call the scanner after we return the
3335                                          * YY_NULL, it'll still work - another
3336                                          * YY_NULL will get returned.
3337                                          */
3338                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3339
3340                                         yy_act = YY_STATE_EOF(YY_START);
3341                                         goto do_action;
3342                                         }
3343
3344                                 else
3345                                         {
3346                                         if ( ! (yy_did_buffer_switch_on_eof) )
3347                                                 YY_NEW_FILE;
3348                                         }
3349                                 break;
3350                                 }
3351
3352                         case EOB_ACT_CONTINUE_SCAN:
3353                                 (yy_c_buf_p) =
3354                                         (yytext_ptr) + yy_amount_of_matched_text;
3355
3356                                 yy_current_state = yy_get_previous_state(  );
3357
3358                                 yy_cp = (yy_c_buf_p);
3359                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3360                                 goto yy_match;
3361
3362                         case EOB_ACT_LAST_MATCH:
3363                                 (yy_c_buf_p) =
3364                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3365
3366                                 yy_current_state = yy_get_previous_state(  );
3367
3368                                 yy_cp = (yy_c_buf_p);
3369                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3370                                 goto yy_find_action;
3371                         }
3372                 break;
3373                 }
3374
3375         default:
3376                 YY_FATAL_ERROR(
3377                         "fatal flex scanner internal error--no action found" );
3378         } /* end of action switch */
3379                 } /* end of scanning one token */
3380         } /* end of user's declarations */
3381 } /* end of yylex */
3382
3383 /* yy_get_next_buffer - try to read in a new buffer
3384  *
3385  * Returns a code representing an action:
3386  *      EOB_ACT_LAST_MATCH -
3387  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3388  *      EOB_ACT_END_OF_FILE - end of file
3389  */
3390 static int yy_get_next_buffer (void)
3391 {
3392         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3393         char *source = (yytext_ptr);
3394         int number_to_move, i;
3395         int ret_val;
3396
3397         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3398                 YY_FATAL_ERROR(
3399                 "fatal flex scanner internal error--end of buffer missed" );
3400
3401         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3402                 { /* Don't try to fill the buffer, so this is an EOF. */
3403                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3404                         {
3405                         /* We matched a single character, the EOB, so
3406                          * treat this as a final EOF.
3407                          */
3408                         return EOB_ACT_END_OF_FILE;
3409                         }
3410
3411                 else
3412                         {
3413                         /* We matched some text prior to the EOB, first
3414                          * process it.
3415                          */
3416                         return EOB_ACT_LAST_MATCH;
3417                         }
3418                 }
3419
3420         /* Try to read more data. */
3421
3422         /* First move last chars to start of buffer. */
3423         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
3424
3425         for ( i = 0; i < number_to_move; ++i )
3426                 *(dest++) = *(source++);
3427
3428         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3429                 /* don't do the read, it's not guaranteed to return an EOF,
3430                  * just force an EOF
3431                  */
3432                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3433
3434         else
3435                 {
3436                         int num_to_read =
3437                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3438
3439                 while ( num_to_read <= 0 )
3440                         { /* Not enough room in the buffer - grow it. */
3441
3442                         /* just a shorter name for the current buffer */
3443                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
3444
3445                         int yy_c_buf_p_offset =
3446                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3447
3448                         if ( b->yy_is_our_buffer )
3449                                 {
3450                                 int new_size = b->yy_buf_size * 2;
3451
3452                                 if ( new_size <= 0 )
3453                                         b->yy_buf_size += b->yy_buf_size / 8;
3454                                 else
3455                                         b->yy_buf_size *= 2;
3456
3457                                 b->yy_ch_buf = (char *)
3458                                         /* Include room in for 2 EOB chars. */
3459                                         yyrealloc( (void *) b->yy_ch_buf,
3460                                                          (yy_size_t) (b->yy_buf_size + 2)  );
3461                                 }
3462                         else
3463                                 /* Can't grow it, we don't own it. */
3464                                 b->yy_ch_buf = NULL;
3465
3466                         if ( ! b->yy_ch_buf )
3467                                 YY_FATAL_ERROR(
3468                                 "fatal error - scanner input buffer overflow" );
3469
3470                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3471
3472                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3473                                                 number_to_move - 1;
3474
3475                         }
3476
3477                 if ( num_to_read > YY_READ_BUF_SIZE )
3478                         num_to_read = YY_READ_BUF_SIZE;
3479
3480                 /* Read in more data. */
3481                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3482                         (yy_n_chars), num_to_read );
3483
3484                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3485                 }
3486
3487         if ( (yy_n_chars) == 0 )
3488                 {
3489                 if ( number_to_move == YY_MORE_ADJ )
3490                         {
3491                         ret_val = EOB_ACT_END_OF_FILE;
3492                         yyrestart( yyin  );
3493                         }
3494
3495                 else
3496                         {
3497                         ret_val = EOB_ACT_LAST_MATCH;
3498                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3499                                 YY_BUFFER_EOF_PENDING;
3500                         }
3501                 }
3502
3503         else
3504                 ret_val = EOB_ACT_CONTINUE_SCAN;
3505
3506         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3507                 /* Extend the array by 50%, plus the number we really need. */
3508                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3509                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
3510                         (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
3511                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3512                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3513                 /* "- 2" to take care of EOB's */
3514                 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
3515         }
3516
3517         (yy_n_chars) += number_to_move;
3518         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3519         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3520
3521         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3522
3523         return ret_val;
3524 }
3525
3526 /* yy_get_previous_state - get the state just before the EOB char was reached */
3527
3528     static yy_state_type yy_get_previous_state (void)
3529 {
3530         yy_state_type yy_current_state;
3531         char *yy_cp;
3532     
3533         yy_current_state = (yy_start);
3534
3535         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3536                 {
3537                 yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
3538                 }
3539
3540         return yy_current_state;
3541 }
3542
3543 /* yy_try_NUL_trans - try to make a transition on the NUL character
3544  *
3545  * synopsis
3546  *      next_state = yy_try_NUL_trans( current_state );
3547  */
3548     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3549 {
3550         int yy_is_jam;
3551     
3552         yy_current_state = yy_nxt[yy_current_state][1];
3553         yy_is_jam = (yy_current_state <= 0);
3554
3555                 return yy_is_jam ? 0 : yy_current_state;
3556 }
3557
3558 #ifndef YY_NO_UNPUT
3559
3560     static void yyunput (int c, char * yy_bp )
3561 {
3562         char *yy_cp;
3563     
3564     yy_cp = (yy_c_buf_p);
3565
3566         /* undo effects of setting up yytext */
3567         *yy_cp = (yy_hold_char);
3568
3569         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3570                 { /* need to shift things up to make room */
3571                 /* +2 for EOB chars. */
3572                 int number_to_move = (yy_n_chars) + 2;
3573                 char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3574                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3575                 char *source =
3576                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3577
3578                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3579                         *--dest = *--source;
3580
3581                 yy_cp += (int) (dest - source);
3582                 yy_bp += (int) (dest - source);
3583                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3584                         (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3585
3586                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3587                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
3588                 }
3589
3590         *--yy_cp = (char) c;
3591
3592     if ( c == '\n' ){
3593         --yylineno;
3594     }
3595
3596         (yytext_ptr) = yy_bp;
3597         (yy_hold_char) = *yy_cp;
3598         (yy_c_buf_p) = yy_cp;
3599 }
3600
3601 #endif
3602
3603 #ifndef YY_NO_INPUT
3604 #ifdef __cplusplus
3605     static int yyinput (void)
3606 #else
3607     static int input  (void)
3608 #endif
3609
3610 {
3611         int c;
3612     
3613         *(yy_c_buf_p) = (yy_hold_char);
3614
3615         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3616                 {
3617                 /* yy_c_buf_p now points to the character we want to return.
3618                  * If this occurs *before* the EOB characters, then it's a
3619                  * valid NUL; if not, then we've hit the end of the buffer.
3620                  */
3621                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3622                         /* This was really a NUL. */
3623                         *(yy_c_buf_p) = '\0';
3624
3625                 else
3626                         { /* need more input */
3627                         int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
3628                         ++(yy_c_buf_p);
3629
3630                         switch ( yy_get_next_buffer(  ) )
3631                                 {
3632                                 case EOB_ACT_LAST_MATCH:
3633                                         /* This happens because yy_g_n_b()
3634                                          * sees that we've accumulated a
3635                                          * token and flags that we need to
3636                                          * try matching the token before
3637                                          * proceeding.  But for input(),
3638                                          * there's no matching to consider.
3639                                          * So convert the EOB_ACT_LAST_MATCH
3640                                          * to EOB_ACT_END_OF_FILE.
3641                                          */
3642
3643                                         /* Reset buffer status. */
3644                                         yyrestart( yyin );
3645
3646                                         /*FALLTHROUGH*/
3647
3648                                 case EOB_ACT_END_OF_FILE:
3649                                         {
3650                                         if ( yywrap(  ) )
3651                                                 return 0;
3652
3653                                         if ( ! (yy_did_buffer_switch_on_eof) )
3654                                                 YY_NEW_FILE;
3655 #ifdef __cplusplus
3656                                         return yyinput();
3657 #else
3658                                         return input();
3659 #endif
3660                                         }
3661
3662                                 case EOB_ACT_CONTINUE_SCAN:
3663                                         (yy_c_buf_p) = (yytext_ptr) + offset;
3664                                         break;
3665                                 }
3666                         }
3667                 }
3668
3669         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
3670         *(yy_c_buf_p) = '\0';   /* preserve yytext */
3671         (yy_hold_char) = *++(yy_c_buf_p);
3672
3673         if ( c == '\n' )
3674                 
3675     yylineno++;
3676 ;
3677
3678         return c;
3679 }
3680 #endif  /* ifndef YY_NO_INPUT */
3681
3682 /** Immediately switch to a different input stream.
3683  * @param input_file A readable stream.
3684  * 
3685  * @note This function does not reset the start condition to @c INITIAL .
3686  */
3687     void yyrestart  (FILE * input_file )
3688 {
3689     
3690         if ( ! YY_CURRENT_BUFFER ){
3691         yyensure_buffer_stack ();
3692                 YY_CURRENT_BUFFER_LVALUE =
3693             yy_create_buffer( yyin, YY_BUF_SIZE );
3694         }
3695
3696         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
3697         yy_load_buffer_state(  );
3698 }
3699
3700 /** Switch to a different input buffer.
3701  * @param new_buffer The new input buffer.
3702  * 
3703  */
3704     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
3705 {
3706     
3707         /* TODO. We should be able to replace this entire function body
3708          * with
3709          *              yypop_buffer_state();
3710          *              yypush_buffer_state(new_buffer);
3711      */
3712         yyensure_buffer_stack ();
3713         if ( YY_CURRENT_BUFFER == new_buffer )
3714                 return;
3715
3716         if ( YY_CURRENT_BUFFER )
3717                 {
3718                 /* Flush out information for old buffer. */
3719                 *(yy_c_buf_p) = (yy_hold_char);
3720                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3721                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3722                 }
3723
3724         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3725         yy_load_buffer_state(  );
3726
3727         /* We don't actually know whether we did this switch during
3728          * EOF (yywrap()) processing, but the only time this flag
3729          * is looked at is after yywrap() is called, so it's safe
3730          * to go ahead and always set it.
3731          */
3732         (yy_did_buffer_switch_on_eof) = 1;
3733 }
3734
3735 static void yy_load_buffer_state  (void)
3736 {
3737         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3738         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3739         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3740         (yy_hold_char) = *(yy_c_buf_p);
3741 }
3742
3743 /** Allocate and initialize an input buffer state.
3744  * @param file A readable stream.
3745  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3746  * 
3747  * @return the allocated buffer state.
3748  */
3749     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
3750 {
3751         YY_BUFFER_STATE b;
3752     
3753         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
3754         if ( ! b )
3755                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3756
3757         b->yy_buf_size = size;
3758
3759         /* yy_ch_buf has to be 2 characters longer than the size given because
3760          * we need to put in 2 end-of-buffer characters.
3761          */
3762         b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
3763         if ( ! b->yy_ch_buf )
3764                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3765
3766         b->yy_is_our_buffer = 1;
3767
3768         yy_init_buffer( b, file );
3769
3770         return b;
3771 }
3772
3773 /** Destroy the buffer.
3774  * @param b a buffer created with yy_create_buffer()
3775  * 
3776  */
3777     void yy_delete_buffer (YY_BUFFER_STATE  b )
3778 {
3779     
3780         if ( ! b )
3781                 return;
3782
3783         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3784                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3785
3786         if ( b->yy_is_our_buffer )
3787                 yyfree( (void *) b->yy_ch_buf  );
3788
3789         yyfree( (void *) b  );
3790 }
3791
3792 /* Initializes or reinitializes a buffer.
3793  * This function is sometimes called more than once on the same buffer,
3794  * such as during a yyrestart() or at EOF.
3795  */
3796     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
3797
3798 {
3799         int oerrno = errno;
3800     
3801         yy_flush_buffer( b );
3802
3803         b->yy_input_file = file;
3804         b->yy_fill_buffer = 1;
3805
3806     /* If b is the current buffer, then yy_init_buffer was _probably_
3807      * called from yyrestart() or through yy_get_next_buffer.
3808      * In that case, we don't want to reset the lineno or column.
3809      */
3810     if (b != YY_CURRENT_BUFFER){
3811         b->yy_bs_lineno = 1;
3812         b->yy_bs_column = 0;
3813     }
3814
3815         b->yy_is_interactive = 0;
3816     
3817         errno = oerrno;
3818 }
3819
3820 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3821  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3822  * 
3823  */
3824     void yy_flush_buffer (YY_BUFFER_STATE  b )
3825 {
3826         if ( ! b )
3827                 return;
3828
3829         b->yy_n_chars = 0;
3830
3831         /* We always need two end-of-buffer characters.  The first causes
3832          * a transition to the end-of-buffer state.  The second causes
3833          * a jam in that state.
3834          */
3835         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3836         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3837
3838         b->yy_buf_pos = &b->yy_ch_buf[0];
3839
3840         b->yy_at_bol = 1;
3841         b->yy_buffer_status = YY_BUFFER_NEW;
3842
3843         if ( b == YY_CURRENT_BUFFER )
3844                 yy_load_buffer_state(  );
3845 }
3846
3847 /** Pushes the new state onto the stack. The new state becomes
3848  *  the current state. This function will allocate the stack
3849  *  if necessary.
3850  *  @param new_buffer The new state.
3851  *  
3852  */
3853 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
3854 {
3855         if (new_buffer == NULL)
3856                 return;
3857
3858         yyensure_buffer_stack();
3859
3860         /* This block is copied from yy_switch_to_buffer. */
3861         if ( YY_CURRENT_BUFFER )
3862                 {
3863                 /* Flush out information for old buffer. */
3864                 *(yy_c_buf_p) = (yy_hold_char);
3865                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3866                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3867                 }
3868
3869         /* Only push if top exists. Otherwise, replace top. */
3870         if (YY_CURRENT_BUFFER)
3871                 (yy_buffer_stack_top)++;
3872         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3873
3874         /* copied from yy_switch_to_buffer. */
3875         yy_load_buffer_state(  );
3876         (yy_did_buffer_switch_on_eof) = 1;
3877 }
3878
3879 /** Removes and deletes the top of the stack, if present.
3880  *  The next element becomes the new top.
3881  *  
3882  */
3883 void yypop_buffer_state (void)
3884 {
3885         if (!YY_CURRENT_BUFFER)
3886                 return;
3887
3888         yy_delete_buffer(YY_CURRENT_BUFFER );
3889         YY_CURRENT_BUFFER_LVALUE = NULL;
3890         if ((yy_buffer_stack_top) > 0)
3891                 --(yy_buffer_stack_top);
3892
3893         if (YY_CURRENT_BUFFER) {
3894                 yy_load_buffer_state(  );
3895                 (yy_did_buffer_switch_on_eof) = 1;
3896         }
3897 }
3898
3899 /* Allocates the stack if it does not exist.
3900  *  Guarantees space for at least one push.
3901  */
3902 static void yyensure_buffer_stack (void)
3903 {
3904         yy_size_t num_to_alloc;
3905     
3906         if (!(yy_buffer_stack)) {
3907
3908                 /* First allocation is just for 2 elements, since we don't know if this
3909                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3910                  * immediate realloc on the next call.
3911          */
3912       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
3913                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
3914                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
3915                                                                 );
3916                 if ( ! (yy_buffer_stack) )
3917                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3918
3919                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3920
3921                 (yy_buffer_stack_max) = num_to_alloc;
3922                 (yy_buffer_stack_top) = 0;
3923                 return;
3924         }
3925
3926         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3927
3928                 /* Increase the buffer to prepare for a possible push. */
3929                 yy_size_t grow_size = 8 /* arbitrary grow size */;
3930
3931                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3932                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
3933                                                                 ((yy_buffer_stack),
3934                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
3935                                                                 );
3936                 if ( ! (yy_buffer_stack) )
3937                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3938
3939                 /* zero only the new slots.*/
3940                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3941                 (yy_buffer_stack_max) = num_to_alloc;
3942         }
3943 }
3944
3945 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3946  * @param base the character buffer
3947  * @param size the size in bytes of the character buffer
3948  * 
3949  * @return the newly allocated buffer state object.
3950  */
3951 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
3952 {
3953         YY_BUFFER_STATE b;
3954     
3955         if ( size < 2 ||
3956              base[size-2] != YY_END_OF_BUFFER_CHAR ||
3957              base[size-1] != YY_END_OF_BUFFER_CHAR )
3958                 /* They forgot to leave room for the EOB's. */
3959                 return NULL;
3960
3961         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
3962         if ( ! b )
3963                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3964
3965         b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
3966         b->yy_buf_pos = b->yy_ch_buf = base;
3967         b->yy_is_our_buffer = 0;
3968         b->yy_input_file = NULL;
3969         b->yy_n_chars = b->yy_buf_size;
3970         b->yy_is_interactive = 0;
3971         b->yy_at_bol = 1;
3972         b->yy_fill_buffer = 0;
3973         b->yy_buffer_status = YY_BUFFER_NEW;
3974
3975         yy_switch_to_buffer( b  );
3976
3977         return b;
3978 }
3979
3980 /** Setup the input buffer state to scan a string. The next call to yylex() will
3981  * scan from a @e copy of @a str.
3982  * @param yystr a NUL-terminated string to scan
3983  * 
3984  * @return the newly allocated buffer state object.
3985  * @note If you want to scan bytes that may contain NUL values, then use
3986  *       yy_scan_bytes() instead.
3987  */
3988 YY_BUFFER_STATE yy_scan_string (const char * yystr )
3989 {
3990     
3991         return yy_scan_bytes( yystr, (int) strlen(yystr) );
3992 }
3993
3994 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3995  * scan from a @e copy of @a bytes.
3996  * @param yybytes the byte buffer to scan
3997  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
3998  * 
3999  * @return the newly allocated buffer state object.
4000  */
4001 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
4002 {
4003         YY_BUFFER_STATE b;
4004         char *buf;
4005         yy_size_t n;
4006         int i;
4007     
4008         /* Get memory for full buffer, including space for trailing EOB's. */
4009         n = (yy_size_t) (_yybytes_len + 2);
4010         buf = (char *) yyalloc( n  );
4011         if ( ! buf )
4012                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4013
4014         for ( i = 0; i < _yybytes_len; ++i )
4015                 buf[i] = yybytes[i];
4016
4017         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4018
4019         b = yy_scan_buffer( buf, n );
4020         if ( ! b )
4021                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4022
4023         /* It's okay to grow etc. this buffer, and we should throw it
4024          * away when we're done.
4025          */
4026         b->yy_is_our_buffer = 1;
4027
4028         return b;
4029 }
4030
4031 #ifndef YY_EXIT_FAILURE
4032 #define YY_EXIT_FAILURE 2
4033 #endif
4034
4035 static void yynoreturn yy_fatal_error (const char* msg )
4036 {
4037                         fprintf( stderr, "%s\n", msg );
4038         exit( YY_EXIT_FAILURE );
4039 }
4040
4041 /* Redefine yyless() so it works in section 3 code. */
4042
4043 #undef yyless
4044 #define yyless(n) \
4045         do \
4046                 { \
4047                 /* Undo effects of setting up yytext. */ \
4048         int yyless_macro_arg = (n); \
4049         YY_LESS_LINENO(yyless_macro_arg);\
4050                 yytext[yyleng] = (yy_hold_char); \
4051                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
4052                 (yy_hold_char) = *(yy_c_buf_p); \
4053                 *(yy_c_buf_p) = '\0'; \
4054                 yyleng = yyless_macro_arg; \
4055                 } \
4056         while ( 0 )
4057
4058 /* Accessor  methods (get/set functions) to struct members. */
4059
4060 /** Get the current line number.
4061  * 
4062  */
4063 int yyget_lineno  (void)
4064 {
4065     
4066     return yylineno;
4067 }
4068
4069 /** Get the input stream.
4070  * 
4071  */
4072 FILE *yyget_in  (void)
4073 {
4074         return yyin;
4075 }
4076
4077 /** Get the output stream.
4078  * 
4079  */
4080 FILE *yyget_out  (void)
4081 {
4082         return yyout;
4083 }
4084
4085 /** Get the length of the current token.
4086  * 
4087  */
4088 int yyget_leng  (void)
4089 {
4090         return yyleng;
4091 }
4092
4093 /** Get the current token.
4094  * 
4095  */
4096
4097 char *yyget_text  (void)
4098 {
4099         return yytext;
4100 }
4101
4102 /** Set the current line number.
4103  * @param _line_number line number
4104  * 
4105  */
4106 void yyset_lineno (int  _line_number )
4107 {
4108     
4109     yylineno = _line_number;
4110 }
4111
4112 /** Set the input stream. This does not discard the current
4113  * input buffer.
4114  * @param _in_str A readable stream.
4115  * 
4116  * @see yy_switch_to_buffer
4117  */
4118 void yyset_in (FILE *  _in_str )
4119 {
4120         yyin = _in_str ;
4121 }
4122
4123 void yyset_out (FILE *  _out_str )
4124 {
4125         yyout = _out_str ;
4126 }
4127
4128 int yyget_debug  (void)
4129 {
4130         return yy_flex_debug;
4131 }
4132
4133 void yyset_debug (int  _bdebug )
4134 {
4135         yy_flex_debug = _bdebug ;
4136 }
4137
4138 static int yy_init_globals (void)
4139 {
4140         /* Initialization is the same as for the non-reentrant scanner.
4141      * This function is called from yylex_destroy(), so don't allocate here.
4142      */
4143
4144     /* We do not touch yylineno unless the option is enabled. */
4145     yylineno =  1;
4146     
4147     (yy_buffer_stack) = NULL;
4148     (yy_buffer_stack_top) = 0;
4149     (yy_buffer_stack_max) = 0;
4150     (yy_c_buf_p) = NULL;
4151     (yy_init) = 0;
4152     (yy_start) = 0;
4153
4154 /* Defined in main.c */
4155 #ifdef YY_STDINIT
4156     yyin = stdin;
4157     yyout = stdout;
4158 #else
4159     yyin = NULL;
4160     yyout = NULL;
4161 #endif
4162
4163     /* For future reference: Set errno on error, since we are called by
4164      * yylex_init()
4165      */
4166     return 0;
4167 }
4168
4169 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
4170 int yylex_destroy  (void)
4171 {
4172     
4173     /* Pop the buffer stack, destroying each element. */
4174         while(YY_CURRENT_BUFFER){
4175                 yy_delete_buffer( YY_CURRENT_BUFFER  );
4176                 YY_CURRENT_BUFFER_LVALUE = NULL;
4177                 yypop_buffer_state();
4178         }
4179
4180         /* Destroy the stack itself. */
4181         yyfree((yy_buffer_stack) );
4182         (yy_buffer_stack) = NULL;
4183
4184     /* Reset the globals. This is important in a non-reentrant scanner so the next time
4185      * yylex() is called, initialization will occur. */
4186     yy_init_globals( );
4187
4188     return 0;
4189 }
4190
4191 /*
4192  * Internal utility routines.
4193  */
4194
4195 #ifndef yytext_ptr
4196 static void yy_flex_strncpy (char* s1, const char * s2, int n )
4197 {
4198                 
4199         int i;
4200         for ( i = 0; i < n; ++i )
4201                 s1[i] = s2[i];
4202 }
4203 #endif
4204
4205 #ifdef YY_NEED_STRLEN
4206 static int yy_flex_strlen (const char * s )
4207 {
4208         int n;
4209         for ( n = 0; s[n]; ++n )
4210                 ;
4211
4212         return n;
4213 }
4214 #endif
4215
4216 void *yyalloc (yy_size_t  size )
4217 {
4218                         return malloc(size);
4219 }
4220
4221 void *yyrealloc  (void * ptr, yy_size_t  size )
4222 {
4223                 
4224         /* The cast to (char *) in the following accommodates both
4225          * implementations that use char* generic pointers, and those
4226          * that use void* generic pointers.  It works with the latter
4227          * because both ANSI C and C++ allow castless assignment from
4228          * any pointer type to void*, and deal with argument conversions
4229          * as though doing an assignment.
4230          */
4231         return realloc(ptr, size);
4232 }
4233
4234 void yyfree (void * ptr )
4235 {
4236                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
4237 }
4238
4239 #define YYTABLES_NAME "yytables"
4240
4241 /* second stage lexer */
4242 int yylex(void)
4243 {
4244         int token;
4245
4246 repeat:
4247         token = yylex1();
4248
4249         if (prev_token == T_EOL || prev_token == T_HELPTEXT) {
4250                 if (token == T_EOL) {
4251                         /* Do not pass unneeded T_EOL to the parser. */
4252                         goto repeat;
4253                 } else {
4254                         /*
4255                          * For the parser, update file/lineno at the first token
4256                          * of each statement. Generally, \n is a statement
4257                          * terminator in Kconfig, but it is not always true
4258                          * because \n could be escaped by a backslash.
4259                          */
4260                         current_pos.file = current_file;
4261                         current_pos.lineno = yylineno;
4262                 }
4263         }
4264
4265         if (prev_prev_token == T_EOL && prev_token == T_WORD &&
4266             (token == T_EQUAL || token == T_COLON_EQUAL || token == T_PLUS_EQUAL))
4267                 BEGIN(ASSIGN_VAL);
4268
4269         prev_prev_token = prev_token;
4270         prev_token = token;
4271
4272         return token;
4273 }
4274
4275 static char *expand_token(const char *in, size_t n)
4276 {
4277         char *out;
4278         int c;
4279         char c2;
4280         const char *rest, *end;
4281
4282         new_string();
4283         append_string(in, n);
4284
4285         /* get the whole line because we do not know the end of token. */
4286         while ((c = input()) != EOF) {
4287                 if (c == '\n') {
4288                         unput(c);
4289                         break;
4290                 }
4291                 c2 = c;
4292                 append_string(&c2, 1);
4293         }
4294
4295         rest = text;
4296         out = expand_one_token(&rest);
4297
4298         /* push back unused characters to the input stream */
4299         end = rest + strlen(rest);
4300         while (end > rest)
4301                 unput(*--end);
4302
4303         free(text);
4304
4305         return out;
4306 }
4307
4308 static void append_expanded_string(const char *str)
4309 {
4310         const char *end;
4311         char *res;
4312
4313         str++;
4314
4315         res = expand_dollar(&str);
4316
4317         /* push back unused characters to the input stream */
4318         end = str + strlen(str);
4319         while (end > str)
4320                 unput(*--end);
4321
4322         append_string(res, strlen(res));
4323
4324         free(res);
4325 }
4326
4327 void zconf_starthelp(void)
4328 {
4329         new_string();
4330         last_ts = first_ts = 0;
4331         BEGIN(HELP);
4332 }
4333
4334 static void zconf_endhelp(void)
4335 {
4336         yylval.string = text;
4337         BEGIN(INITIAL);
4338 }
4339
4340 /*
4341  * Try to open specified file with following names:
4342  * ./name
4343  * $(srctree)/name
4344  * The latter is used when srctree is separate from objtree
4345  * when compiling the kernel.
4346  * Return NULL if file is not found.
4347  */
4348 FILE *zconf_fopen(const char *name)
4349 {
4350         char *env, fullname[PATH_MAX+1];
4351         FILE *f;
4352
4353         f = fopen(name, "r");
4354         if (!f && name != NULL && name[0] != '/') {
4355                 env = getenv(SRCTREE);
4356                 if (env) {
4357                         snprintf(fullname, sizeof(fullname),
4358                                  "%s/%s", env, name);
4359                         f = fopen(fullname, "r");
4360                 }
4361         }
4362         return f;
4363 }
4364
4365 void zconf_initscan(const char *name)
4366 {
4367         yyin = zconf_fopen(name);
4368         if (!yyin) {
4369                 fprintf(stderr, "can't find file %s\n", name);
4370                 exit(1);
4371         }
4372
4373         current_buf = xmalloc(sizeof(*current_buf));
4374         memset(current_buf, 0, sizeof(*current_buf));
4375
4376         current_file = file_lookup(name);
4377         yylineno = 1;
4378 }
4379
4380 static void __zconf_nextfile(const char *name)
4381 {
4382         struct file *iter;
4383         struct file *file = file_lookup(name);
4384         struct buffer *buf = xmalloc(sizeof(*buf));
4385         memset(buf, 0, sizeof(*buf));
4386
4387         current_buf->state = YY_CURRENT_BUFFER;
4388         yyin = zconf_fopen(file->name);
4389         if (!yyin) {
4390                 fprintf(stderr, "%s:%d: can't open file \"%s\"\n",
4391                         zconf_curname(), zconf_lineno(), file->name);
4392                 exit(1);
4393         }
4394         yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
4395         buf->parent = current_buf;
4396         current_buf = buf;
4397
4398         current_file->lineno = yylineno;
4399         file->parent = current_file;
4400
4401         for (iter = current_file; iter; iter = iter->parent) {
4402                 if (!strcmp(iter->name, file->name)) {
4403                         fprintf(stderr,
4404                                 "Recursive inclusion detected.\n"
4405                                 "Inclusion path:\n"
4406                                 "  current file : %s\n", file->name);
4407                         iter = file;
4408                         do {
4409                                 iter = iter->parent;
4410                                 fprintf(stderr, "  included from: %s:%d\n",
4411                                         iter->name, iter->lineno - 1);
4412                         } while (strcmp(iter->name, file->name));
4413                         exit(1);
4414                 }
4415         }
4416
4417         yylineno = 1;
4418         current_file = file;
4419 }
4420
4421 void zconf_nextfile(const char *name)
4422 {
4423         glob_t gl;
4424         int err;
4425         int i;
4426         char path[PATH_MAX], *p;
4427
4428         err = glob(name, GLOB_ERR | GLOB_MARK, NULL, &gl);
4429
4430         /* ignore wildcard patterns that return no result */
4431         if (err == GLOB_NOMATCH && strchr(name, '*')) {
4432                 err = 0;
4433                 gl.gl_pathc = 0;
4434         }
4435
4436         if (err == GLOB_NOMATCH) {
4437                 p = strdup(current_file->name);
4438                 if (p) {
4439                         snprintf(path, sizeof(path), "%s/%s", dirname(p), name);
4440                         err = glob(path, GLOB_ERR | GLOB_MARK, NULL, &gl);
4441                         free(p);
4442                 }
4443         }
4444
4445         if (err) {
4446                 const char *reason = "unknown error";
4447
4448                 switch (err) {
4449                 case GLOB_NOSPACE:
4450                         reason = "out of memory";
4451                         break;
4452                 case GLOB_ABORTED:
4453                         reason = "read error";
4454                         break;
4455                 case GLOB_NOMATCH:
4456                         reason = "No files found";
4457                         break;
4458                 default:
4459                         break;
4460                 }
4461
4462                 printf("%s:%d: glob failed: %s \"%s\"\n", zconf_curname(), zconf_lineno(),
4463                         reason, name);
4464
4465                 exit(1);
4466         }
4467
4468         for (i = 0; i < gl.gl_pathc; i++)
4469                 __zconf_nextfile(gl.gl_pathv[i]);
4470 }
4471
4472 static void zconf_endfile(void)
4473 {
4474         struct buffer *parent;
4475
4476         current_file = current_file->parent;
4477         if (current_file)
4478                 yylineno = current_file->lineno;
4479
4480         parent = current_buf->parent;
4481         if (parent) {
4482                 fclose(yyin);
4483                 yy_delete_buffer(YY_CURRENT_BUFFER);
4484                 yy_switch_to_buffer(parent->state);
4485         }
4486         free(current_buf);
4487         current_buf = parent;
4488 }
4489
4490 int zconf_lineno(void)
4491 {
4492         return current_pos.lineno;
4493 }
4494
4495 const char *zconf_curname(void)
4496 {
4497         return current_pos.file ? current_pos.file->name : "<none>";
4498 }
4499