1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <inttypes.h>
4 # define U(x) x
5 # define NLSTATE yyprevious=YYNEWLINE
6 # define BEGIN yybgin = yysvec + 1 +
7 # define INITIAL 0
8 # define YYLERR yysvec
9 # define YYSTATE (yyestate-yysvec-1)
10 # define YYOPTIM 1
11 # ifndef YYLMAX
12 # define YYLMAX BUFSIZ
13 # endif
14 #ifndef __cplusplus
15 # define output(c) (void)putc(c,yyout)
16 #else
17 # define lex_output(c) (void)putc(c,yyout)
18 #endif
19 
20 #if defined(__cplusplus) || defined(__STDC__)
21 
22 #if defined(__cplusplus) && defined(__EXTERN_C__)
23 extern "C" {
24 #endif
25 	int yyback(int *, int);
26 	int yyinput(void);
27 	int yylook(void);
28 	void yyoutput(int);
29 	int yyracc(int);
30 	int yyreject(void);
31 	void yyunput(int);
32 	int yylex(void);
33 #ifdef YYLEX_E
34 	void yywoutput(wchar_t);
35 	wchar_t yywinput(void);
36 	void yywunput(wchar_t);
37 #endif
38 #ifndef yyless
39 	int yyless(int);
40 #endif
41 #ifndef yywrap
42 	int yywrap(void);
43 #endif
44 #ifdef LEXDEBUG
45 	void allprint(char);
46 	void sprint(char *);
47 #endif
48 #if defined(__cplusplus) && defined(__EXTERN_C__)
49 }
50 #endif
51 
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55 	void exit(int);
56 #ifdef __cplusplus
57 }
58 #endif
59 
60 #endif
61 # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
62 # define yymore() (yymorfg=1)
63 #ifndef __cplusplus
64 # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
65 #else
66 # define lex_input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
67 #endif
68 #define ECHO fprintf(yyout, "%s",yytext)
69 # define REJECT { nstr = yyreject(); goto yyfussy;}
70 int yyleng;
71 char yy_tbuf[YYLMAX];
72 char * yytext = yy_tbuf;
73 int yytextsz = YYLMAX;
74 #ifndef YYTEXTSZINC
75 #define YYTEXTSZINC 100
76 #endif
77 int yymorfg;
78 extern char *yysptr, yysbuf[];
79 int yytchar;
80 FILE *yyin = {stdin}, *yyout = {stdout};
81 extern int yylineno;
82 struct yysvf {
83 	struct yywork *yystoff;
84 	struct yysvf *yyother;
85 	int *yystops;};
86 struct yysvf *yyestate;
87 extern struct yysvf yysvec[], *yybgin;
88 
89 # line 5 "../../../common/mdb/mdb_lex.l"
90 /*
91  * CDDL HEADER START
92  *
93  * The contents of this file are subject to the terms of the
94  * Common Development and Distribution License (the "License").
95  * You may not use this file except in compliance with the License.
96  *
97  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
98  * or http://www.opensolaris.org/os/licensing.
99  * See the License for the specific language governing permissions
100  * and limitations under the License.
101  *
102  * When distributing Covered Code, include this CDDL HEADER in each
103  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
104  * If applicable, add the following below this CDDL HEADER, with the
105  * fields enclosed by brackets "[]" replaced with your own identifying
106  * information: Portions Copyright [yyyy] [name of copyright owner]
107  *
108  * CDDL HEADER END
109  *
110  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
111  * Use is subject to license terms.
112  */
113 
114 
115 # line 29 "../../../common/mdb/mdb_lex.l"
116 /*
117  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
118  */
119 
120 #include <sys/types.h>
121 #include <sys/isa_defs.h>
122 
123 #include <strings.h>
124 #include <stdarg.h>
125 #include <stdlib.h>
126 #include <stdio.h>
127 #include <errno.h>
128 
129 #include <mdb/mdb_types.h>
130 #include <mdb/mdb_debug.h>
131 #include <mdb/mdb_nv.h>
132 #include <mdb/mdb_lex.h>
133 #include <mdb/mdb_frame.h>
134 #include <mdb/mdb_string.h>
135 #include <mdb/mdb_stdlib.h>
136 #include <mdb/mdb_err.h>
137 #include <mdb/mdb.h>
138 
139 #include "mdb_grammar.h"
140 
141 
142 # line 54 "../../../common/mdb/mdb_lex.l"
143 /*
144  * lex hardcodes yyin and yyout to stdin and stdout, respectively, before we get
145  * control.  We've redirected printf and fprintf (see mdb_lex.h) to yyprintf and
146  * yyfprintf, which ignore the FILE * provided by yyout.  __iob-based stdin and
147  * stdout are useless in kmdb, since we don't have stdio.  We define __iob here
148  * to shut the linker up.
149  */
150 #ifdef _KMDB
151 FILE __iob[_NFILE];
152 #endif
153 
154 
155 # line 65 "../../../common/mdb/mdb_lex.l"
156 /*
157  * We need to undefine lex's input, unput, and output macros so that references
158  * to these call the functions we provide at the end of this source file,
159  * instead of the default versions based on libc's stdio.
160  */
161 #ifdef input
162 #undef input
163 #endif
164 
165 #ifdef unput
166 #undef unput
167 #endif
168 
169 #ifdef output
170 #undef output
171 #endif
172 
173 static int input(void);
174 static void unput(int);
175 static void output(int);
176 
177 static void string_unquote(char *);
178 
179 extern int yydebug;
180 
181 
182 # line 90 "../../../common/mdb/mdb_lex.l"
183 /*
184  * This will prevent lex from trying to malloc() and resize our yytext variable,
185  * instead it will just print out an error message and exit(), which seems
186  * a lesser of two evils.
187  */
188 #define YYISARRAY
189 
190 # define S_SHELLCMD 2
191 # define S_INITIAL 4
192 # define S_FMTLIST 6
193 # define S_ARGLIST 8
194 # define S_EXPR 10
195 # define YYNEWLINE 10
196 int yylex(){
197 int nstr; extern int yyprevious;
198 #ifdef __cplusplus
199 /* to avoid CC and lint complaining yyfussy not being used ...*/
200 static int __lex_hack = 0;
201 if (__lex_hack) goto yyfussy;
202 #endif
203 while((nstr = yylook()) >= 0)
204 yyfussy: switch(nstr){
205 case 0:
206 if(yywrap()) return(0); break;
207 case 1:
208 
209 # line 116 "../../../common/mdb/mdb_lex.l"
210 case 2:
211 
212 # line 117 "../../../common/mdb/mdb_lex.l"
213 case 3:
214 
215 # line 118 "../../../common/mdb/mdb_lex.l"
216 {
217 		/*
218 		 * Comments are legal in these three states -- if we see one
219 		 * eat the line and return the newline character.
220 		 */
221 		BEGIN(S_INITIAL);
222 		return ('\n');
223 	}
224 break;
225 case 4:
226 
227 # line 127 "../../../common/mdb/mdb_lex.l"
228 case 5:
229 
230 # line 128 "../../../common/mdb/mdb_lex.l"
231 return (MDB_TOK_EQUAL);
232 break;
233 case 6:
234 
235 # line 130 "../../../common/mdb/mdb_lex.l"
236 case 7:
237 
238 # line 131 "../../../common/mdb/mdb_lex.l"
239 return (MDB_TOK_NOTEQUAL);
240 break;
241 case 8:
242 
243 # line 133 "../../../common/mdb/mdb_lex.l"
244 case 9:
245 
246 # line 134 "../../../common/mdb/mdb_lex.l"
247 case 10:
248 
249 # line 135 "../../../common/mdb/mdb_lex.l"
250 {
251 		/*
252 		 * Shell escapes are legal in all of these states -- switch to
253 		 * the shell command state and return the ! character.
254 		 */
255 		BEGIN(S_SHELLCMD);
256 		return (yytext[0]);
257 	}
258 break;
259 case 11:
260 
261 # line 144 "../../../common/mdb/mdb_lex.l"
262 case 12:
263 
264 # line 145 "../../../common/mdb/mdb_lex.l"
265 {
266 		/*
267 		 * Pipelines can appear in any of these states -- switch to
268 		 * the initial state and return the | character.
269 		 */
270 		BEGIN(S_INITIAL);
271 		return (yytext[0]);
272 	}
273 break;
274 case 13:
275 
276 # line 154 "../../../common/mdb/mdb_lex.l"
277 {
278 		/*
279 		 * Once in the shell-command state, we return all remaining
280 		 * characters up to a newline or ';' delimiter as a single
281 		 * string which will be passed to $SHELL -c.
282 		 */
283 		yylval.l_string = strdup(yytext);
284 		BEGIN(S_INITIAL);
285 		return (MDB_TOK_STRING);
286 	}
287 break;
288 case 14:
289 
290 # line 165 "../../../common/mdb/mdb_lex.l"
291 {
292 		/*
293 		 * Verb ::command-name -- lookup the correspond dcmd and
294 		 * switch to the argument list state.
295 		 */
296 		if ((yylval.l_dcmd = mdb_dcmd_lookup(yytext + 2)) == NULL)
297 			yyperror("invalid command '%s'", yytext);
298 
299 		BEGIN(S_ARGLIST);
300 		return (MDB_TOK_DCMD);
301 	}
302 break;
303 case 15:
304 
305 # line 177 "../../../common/mdb/mdb_lex.l"
306 case 16:
307 
308 # line 178 "../../../common/mdb/mdb_lex.l"
309 {
310 		/*
311 		 * Old-style :c or $c command -- lookup the corresponding dcmd
312 		 * and switch to the argument list state.
313 		 */
314 		if ((yylval.l_dcmd = mdb_dcmd_lookup(yytext)) == NULL)
315 			yyperror("invalid command '%s'", yytext);
316 
317 		BEGIN(S_ARGLIST);
318 		return (MDB_TOK_DCMD);
319 	}
320 break;
321 case 17:
322 
323 # line 190 "../../../common/mdb/mdb_lex.l"
324 {
325 		/*
326 		 * Variable assignment with size cast -- append the cast letter
327 		 * to the argument list, and switch to the argument list state.
328 		 */
329 		mdb_arg_t arg;
330 
331 		arg.a_un.a_char = yytext[2];
332 		arg.a_type = MDB_TYPE_CHAR;
333 
334 		mdb_argvec_append(&mdb.m_frame->f_argvec, &arg);
335 		yylval.l_dcmd = mdb_dcmd_lookup(">");
336 
337 		BEGIN(S_ARGLIST);
338 		return (MDB_TOK_DCMD);
339 	}
340 break;
341 case 18:
342 
343 # line 207 "../../../common/mdb/mdb_lex.l"
344 {
345 		/*
346 		 * Variable assignment -- switch to the argument list state.
347 		 */
348 		yylval.l_dcmd = mdb_dcmd_lookup(yytext);
349 		BEGIN(S_ARGLIST);
350 		return (MDB_TOK_DCMD);
351 	}
352 break;
353 case 19:
354 
355 # line 216 "../../../common/mdb/mdb_lex.l"
356 {
357 		/*
358 		 * Format verb followed by write or match signifier -- switch
359 		 * to the value list state and return the verb character.  We
360 		 * also append the actual format character to the arg list.
361 		 */
362 		mdb_arg_t arg;
363 
364 		arg.a_un.a_char = yytext[yyleng - 1];
365 		arg.a_type = MDB_TYPE_CHAR;
366 
367 		mdb_argvec_append(&mdb.m_frame->f_argvec, &arg);
368 
369 		BEGIN(S_ARGLIST);
370 		return yytext[0];
371 	}
372 break;
373 case 20:
374 
375 # line 233 "../../../common/mdb/mdb_lex.l"
376 {
377 		/*
378 		 * Format verb -- switch to the format list state and return
379 		 * the actual verb character verbatim.
380 		 */
381 		BEGIN(S_FMTLIST);
382 		return (yytext[0]);
383 	}
384 break;
385 case 21:
386 
387 # line 242 "../../../common/mdb/mdb_lex.l"
388 case 22:
389 
390 # line 243 "../../../common/mdb/mdb_lex.l"
391 	yyerror("syntax error: ' unmatched");
392 break;
393 case 23:
394 
395 # line 245 "../../../common/mdb/mdb_lex.l"
396 	case 24:
397 
398 # line 246 "../../../common/mdb/mdb_lex.l"
399 	{
400 		char *s, *p, *q;
401 		size_t nbytes;
402 
403 		/*
404 		 * If the character sequence is zero-length, return 0.
405 		 */
406 		if (yyleng == 2) {
407 			yylval.l_immediate = 0;
408 			return (MDB_TOK_IMMEDIATE);
409 		}
410 
411 		s = yytext + 1;			/* Skip past initial quote */
412 		yytext[yyleng - 1] = '\0';	/* Overwrite final quote */
413 		nbytes = stresc2chr(s);		/* Convert escapes */
414 		yylval.l_immediate = 0;		/* Initialize token value */
415 
416 		if (nbytes > sizeof (uintmax_t)) {
417 			yyerror("character constant may not exceed %lu bytes\n",
418 			    (ulong_t)sizeof (uintmax_t));
419 		}
420 
421 #ifdef _LITTLE_ENDIAN
422 		p = ((char*)&yylval.l_immediate) + nbytes - 1;
423 
424 		for (q = s; nbytes != 0; nbytes--)
425 			*p-- = *q++;
426 #else
427 		bcopy(s, ((char *)&yylval.l_immediate) +
428 		    sizeof (uintmax_t) - nbytes, nbytes);
429 #endif
430 		return (MDB_TOK_IMMEDIATE);
431 	}
432 break;
433 case 25:
434 
435 # line 280 "../../../common/mdb/mdb_lex.l"
436 yyerror("syntax error: \" unmatched");
437 break;
438 case 26:
439 
440 # line 282 "../../../common/mdb/mdb_lex.l"
441 {
442 		/*
443 		 * Quoted string -- convert C escape sequences and return the
444 		 * string as a token.
445 		 */
446 		yylval.l_string = strndup(yytext + 1, yyleng - 2);
447 		(void) stresc2chr(yylval.l_string);
448 		return (MDB_TOK_STRING);
449 	}
450 break;
451 case 27:
452 
453 # line 292 "../../../common/mdb/mdb_lex.l"
454 case 28:
455 
456 # line 293 "../../../common/mdb/mdb_lex.l"
457 {
458 		/*
459 		 * Start of expression -- begin expression state and save the
460 		 * current state so we can return at the end of the expression.
461 		 */
462 		mdb.m_frame->f_oldstate = YYSTATE;
463 		BEGIN(S_EXPR);
464 		return (MDB_TOK_LEXPR);
465 	}
466 break;
467 case 29:
468 
469 # line 303 "../../../common/mdb/mdb_lex.l"
470 {
471 		/*
472 		 * String token -- create a copy of the string and return it.
473 		 * We need to handle embedded single and double-quote pairs,
474 		 * which overcomplicates this slightly.
475 		 */
476 		yylval.l_string = strdup(yytext);
477 		string_unquote(yylval.l_string);
478 		return (MDB_TOK_STRING);
479 	}
480 break;
481 case 30:
482 
483 # line 314 "../../../common/mdb/mdb_lex.l"
484 {
485 		/*
486 		 * Immediate value -- in the format list, all immediates
487 		 * are assumed to be in decimal.
488 		 */
489 		yylval.l_immediate = strtonum(yytext, 10);
490 		return (MDB_TOK_IMMEDIATE);
491 	}
492 break;
493 case 31:
494 
495 # line 323 "../../../common/mdb/mdb_lex.l"
496 {
497 		/*
498 		 * Non-meta character -- in the format list, we return each
499 		 * character as a separate token to be added as an argument.
500 		 */
501 		yylval.l_char = yytext[0];
502 		return (MDB_TOK_CHAR);
503 	}
504 break;
505 case 32:
506 
507 # line 332 "../../../common/mdb/mdb_lex.l"
508 {
509 		/*
510 		 * In the expression state only, we cannot see a command
511 		 * delimiter or shell escape before we end the expression.
512 		 */
513 		yyerror("syntax error: $[ unmatched");
514 	}
515 break;
516 case 33:
517 
518 # line 340 "../../../common/mdb/mdb_lex.l"
519 {
520 		/*
521 		 * End of expression state.  Restore the state we were in
522 		 * before the "$[" which started this expression.
523 		 */
524 		BEGIN(mdb.m_frame->f_oldstate);
525 		return (MDB_TOK_REXPR);
526 	}
527 break;
528 case 34:
529 
530 # line 349 "../../../common/mdb/mdb_lex.l"
531 case 35:
532 
533 # line 350 "../../../common/mdb/mdb_lex.l"
534 	case 36:
535 
536 # line 351 "../../../common/mdb/mdb_lex.l"
537 	case 37:
538 
539 # line 352 "../../../common/mdb/mdb_lex.l"
540 {
541 		/*
542 		 * Variable reference -- lookup the variable and return a
543 		 * pointer to it.  Referencing undefined variables is an error.
544 		 */
545 		yylval.l_var = mdb_nv_lookup(&mdb.m_nv, &yytext[1]);
546 
547 		if (yylval.l_var == NULL)
548 			yyerror("variable '%s' is not defined", &yytext[1]);
549 
550 		return (MDB_TOK_VAR_REF);
551 	}
552 break;
553 case 38:
554 
555 # line 365 "../../../common/mdb/mdb_lex.l"
556 case 39:
557 
558 # line 366 "../../../common/mdb/mdb_lex.l"
559 return (MDB_TOK_LSHIFT);
560 break;
561 case 40:
562 
563 # line 368 "../../../common/mdb/mdb_lex.l"
564 case 41:
565 
566 # line 369 "../../../common/mdb/mdb_lex.l"
567 return (MDB_TOK_RSHIFT);
568 break;
569 case 42:
570 
571 # line 371 "../../../common/mdb/mdb_lex.l"
572 case 43:
573 
574 # line 372 "../../../common/mdb/mdb_lex.l"
575 {
576 		switch (yytext[2]) {
577 			case 'c': case '1':
578 				return (MDB_TOK_COR1_DEREF);
579 			case 's': case '2':
580 				return (MDB_TOK_COR2_DEREF);
581 			case 'i': case '4':
582 #ifdef _ILP32
583 			case 'l':
584 #endif
585 				return (MDB_TOK_COR4_DEREF);
586 #ifdef _LP64
587 			case 'l':
588 #endif
589 			case '8':
590 				return (MDB_TOK_COR8_DEREF);
591 		}
592 		yyerror("invalid cast -- %s\n", yytext);
593 	}
594 break;
595 case 44:
596 
597 # line 392 "../../../common/mdb/mdb_lex.l"
598 case 45:
599 
600 # line 393 "../../../common/mdb/mdb_lex.l"
601 {
602 		switch (yytext[2]) {
603 			case 'c': case '1':
604 				return (MDB_TOK_OBJ1_DEREF);
605 			case 's': case '2':
606 				return (MDB_TOK_OBJ2_DEREF);
607 			case 'i': case '4':
608 #ifdef _ILP32
609 			case 'l':
610 #endif
611 				return (MDB_TOK_OBJ4_DEREF);
612 #ifdef _LP64
613 			case 'l':
614 #endif
615 			case '8':
616 				return (MDB_TOK_OBJ8_DEREF);
617 		}
618 		yyerror("invalid cast -- %s\n", yytext);
619 	}
620 break;
621 case 46:
622 
623 # line 413 "../../../common/mdb/mdb_lex.l"
624 case 47:
625 
626 # line 414 "../../../common/mdb/mdb_lex.l"
627 {
628 		/*
629 		 * Binary immediate value.
630 		 */
631 		yylval.l_immediate = strtonum(yytext + 2, 2);
632 		return (MDB_TOK_IMMEDIATE);
633 	}
634 break;
635 case 48:
636 
637 # line 422 "../../../common/mdb/mdb_lex.l"
638 case 49:
639 
640 # line 423 "../../../common/mdb/mdb_lex.l"
641 {
642 		/*
643 		 * Octal immediate value.
644 		 */
645 		yylval.l_immediate = strtonum(yytext + 2, 8);
646 		return (MDB_TOK_IMMEDIATE);
647 	}
648 break;
649 case 50:
650 
651 # line 431 "../../../common/mdb/mdb_lex.l"
652 case 51:
653 
654 # line 432 "../../../common/mdb/mdb_lex.l"
655 {
656 #ifdef _KMDB
657 		yyerror("floating point not supported\n");
658 #else
659 		/*
660 		 * Decimal floating point value.
661 		 */
662 		char *p, c;
663 		double d;
664 		int i;
665 
666 		if ((p = strsplit(yytext, '.')) == NULL)
667 			yyerror("internal scanning error -- expected '.'\n");
668 
669 		d = (double)strtonum(yytext + 2, 10);
670 
671 		for (i = 0; (c = *p++) != '\0'; i++)
672 			d = d * 10 + c - '0';
673 
674 		while (i-- != 0)
675 			d /= 10;
676 
677                 yylval.l_immediate = *((uintmax_t *)&d);
678 		return (MDB_TOK_IMMEDIATE);
679 #endif
680 	}
681 break;
682 case 52:
683 
684 # line 459 "../../../common/mdb/mdb_lex.l"
685 case 53:
686 
687 # line 460 "../../../common/mdb/mdb_lex.l"
688 {
689 		/*
690 		 * Decimal immediate value.
691 		 */
692 		yylval.l_immediate = strtonum(yytext + 2, 10);
693 		return (MDB_TOK_IMMEDIATE);
694 	}
695 break;
696 case 54:
697 
698 # line 468 "../../../common/mdb/mdb_lex.l"
699 case 55:
700 
701 # line 469 "../../../common/mdb/mdb_lex.l"
702 {
703 		/*
704 		 * Hexadecimal value.
705 		 */
706 		yylval.l_immediate = strtonum(yytext + 2, 16);
707 		return (MDB_TOK_IMMEDIATE);
708 	}
709 break;
710 case 56:
711 
712 # line 477 "../../../common/mdb/mdb_lex.l"
713 case 57:
714 
715 # line 478 "../../../common/mdb/mdb_lex.l"
716 {
717 		GElf_Sym sym;
718 		/*
719 		 * Immediate values without an explicit base are converted
720 		 * using the default radix (user configurable).  However, if
721 		 * the token does *not* begin with a digit, it is also a
722 		 * potential symbol (e.g. "f") so we have to check that first.
723 		 */
724 		if (strchr("0123456789", yytext[0]) == NULL &&
725 		    mdb_tgt_lookup_by_name(mdb.m_target,
726 		    MDB_TGT_OBJ_EVERY, yytext, &sym, NULL) == 0)
727 			yylval.l_immediate = (uintmax_t)sym.st_value;
728 		else
729 			yylval.l_immediate = strtonum(yytext, mdb.m_radix);
730 		return (MDB_TOK_IMMEDIATE);
731 	}
732 break;
733 case 58:
734 
735 # line 495 "../../../common/mdb/mdb_lex.l"
736 case 59:
737 
738 # line 496 "../../../common/mdb/mdb_lex.l"
739 {
740 		/*
741 		 * Symbol -- parser will look up in symbol table.
742 		 */
743 		yylval.l_string = strdup(yytext);
744 		return (MDB_TOK_SYMBOL);
745 	}
746 break;
747 case 60:
748 
749 # line 504 "../../../common/mdb/mdb_lex.l"
750 {
751 		/*
752 		 * End of command -- return to start state and return literal.
753 		 */
754 		BEGIN(S_INITIAL);
755 		return (yytext[0]);
756 	}
757 break;
758 case 61:
759 
760 # line 512 "../../../common/mdb/mdb_lex.l"
761 ;
762 break;
763 case 62:
764 
765 # line 514 "../../../common/mdb/mdb_lex.l"
766 return (yytext[0]);
767 break;
768 case -1:
769 break;
770 default:
771 (void)fprintf(yyout,"bad switch yylook %d",nstr);
772 } return(0); }
773 /* end of yylex */
774 
775 # line 517 "../../../common/mdb/mdb_lex.l"
776 
777 void
778 mdb_lex_debug(int i)
779 {
780 	yydebug = i;
781 }
782 
783 void
784 mdb_lex_reset(void)
785 {
786 	BEGIN(S_INITIAL);
787 }
788 
789 void
790 yydiscard(void)
791 {
792 	int c;
793 
794 	/*
795 	 * If stdin is a string, pipeline, or tty, throw away all our buffered
796 	 * data. Otherwise discard characters up to the next likely delimiter.
797 	 */
798 	if (mdb_iob_isastr(mdb.m_in) || mdb_iob_isatty(mdb.m_in) ||
799 	    mdb_iob_isapipe(mdb.m_in))
800 		mdb_iob_discard(mdb.m_in);
801 	else {
802 		while ((c = mdb_iob_getc(mdb.m_in)) != (int)EOF) {
803 			if (c == ';' || c == '\n')
804 				break;
805 		}
806 	}
807 
808 	BEGIN(S_INITIAL);
809 }
810 
811 static void
812 yyerror_reset(void)
813 {
814 	yydiscard();
815 	mdb_argvec_reset(&mdb.m_frame->f_argvec);
816 	longjmp(mdb.m_frame->f_pcb, MDB_ERR_PARSE);
817 }
818 
819 void
820 yyerror(const char *format, ...)
821 {
822 	va_list alist;
823 	char *s;
824 
825 	mdb_iob_printf(mdb.m_err, "%s: ", mdb.m_pname);
826 	va_start(alist, format);
827 	mdb_iob_vprintf(mdb.m_err, format, alist);
828 	va_end(alist);
829 
830 	if (strchr(format, '\n') == NULL) {
831 		if (!mdb_iob_isatty(mdb.m_in)) {
832 			mdb_iob_printf(mdb.m_err, " on line %d of %s",
833 			    yylineno, mdb_iob_name(mdb.m_in));
834 		}
835 
836 		s = strchr2esc(yytext, strlen(yytext));
837 		mdb_iob_printf(mdb.m_err, " near \"%s\"\n", s);
838 		strfree(s);
839 	}
840 
841 	yyerror_reset();
842 }
843 
844 void
845 yyperror(const char *format, ...)
846 {
847 	va_list alist;
848 
849 	va_start(alist, format);
850 	vwarn(format, alist);
851 	va_end(alist);
852 
853 	yyerror_reset();
854 }
855 
856 int
857 yywrap(void)
858 {
859 	mdb_dprintf(MDB_DBG_PARSER, "yywrap at line %d\n", yylineno);
860 	return (1); /* indicate that lex should return a zero token for EOF */
861 }
862 
863 /*PRINTFLIKE2*/
864 /*ARGSUSED*/
865 int
866 yyfprintf(FILE *stream, const char *format, ...)
867 {
868 	va_list alist;
869 
870 	va_start(alist, format);
871 	mdb_iob_vprintf(mdb.m_err, format, alist);
872 	va_end(alist);
873 	return (0);
874 }
875 
876 /*PRINTFLIKE1*/
877 int
878 yyprintf(const char *format, ...)
879 {
880 	va_list alist;
881 
882 	va_start(alist, format);
883 	mdb_iob_vprintf(mdb.m_err, format, alist);
884 	va_end(alist);
885 	return (0);
886 }
887 
888 static int
889 input(void)
890 {
891 	int c = mdb_iob_getc(mdb.m_in);
892 
893 	if (c == '\n')
894 		yylineno++;
895 
896 	return (c == EOF ? 0 : c);
897 }
898 
899 static void
900 unput(int c)
901 {
902 	if (c == '\n')
903 		yylineno--;
904 
905 	(void) mdb_iob_ungetc(mdb.m_in, c == 0 ? EOF : c);
906 }
907 
908 static void
909 output(int c)
910 {
911 	char ch = c;
912 	mdb_iob_nputs(mdb.m_out, &ch, sizeof (ch));
913 }
914 
915 static char *
916 string_nextquote(char *s, char q1, char q2)
917 {
918 	char c = 0;
919 
920 	do {
921 		if (c != '\\' && (*s == q1 || *s == q2))
922 			return (s);
923 	} while ((c = *s++) != '\0');
924 
925 	return (NULL);
926 }
927 
928 static void
929 string_unquote(char *s)
930 {
931 	char *o, *p, *q, c;
932 
933 	for (o = p = s; (p = string_nextquote(p, '\'', '"')) != NULL; o = p) {
934 		/*
935 		 * If the quote wasn't the first character, advance
936 		 * the destination buffer past what we skipped.
937 		 */
938 		if (p > o) {
939 			/* Using memmove to prevent possible overlap. */
940 			(void) memmove(s, o, p - o);
941 			s += p - o;
942 		}
943 
944 		c = *p;	/* Save the current quote */
945 
946 		/*
947 		 * Look ahead and find the matching quote.  If none is
948 		 * found, use yyerror to longjmp out of the lexer.
949 		 */
950 		if (c == '"')
951 			q = string_nextquote(p + 1, c, c);
952 		else
953 			q = strchr(p + 1, c);
954 
955 		if (q == NULL)
956 			yyerror("syntax error: %c unmatched", c);
957 
958 		/*
959 		 * If the string is non-empty, copy it to the destination
960 		 * and convert escape sequences if *p is double-quote.
961 		 */
962 		if (q > p + 1) {
963 			(void) memmove(s, p + 1, q - p - 1);
964 			if (c == '"') {
965                                 s[q - p - 1] = '\0';
966 				s += stresc2chr(s);
967 			} else
968 				s += q - p - 1;
969 		}
970 
971 		p = q + 1; /* Advance p past matching quote */
972 	}
973 
974 	(void) memmove(s, o, strlen(o) + 1);
975 }
976 
977 /*
978  * Unfortunately, lex and yacc produces code that is inherently global.  They do
979  * not provide routines to save and restore state, instead relying on global
980  * variables.  There is one single lex state, so that if a frame switch then
981  * tries to perform any evaluation, the old values are corrupted.  This
982  * structure and corresponding function provide a means of preserving lex state
983  * across frame switches.  Note that this is tied to the lex implementation, so
984  * if the lex compiler is changed or upgraded to a different format, then this
985  * may need to be altered.  This is unavoidable due to the implementation of lex
986  * and yacc. This is essentially a collection of all the global variables
987  * defined by the lex code, excluding those that do not change through the
988  * course of yylex() and yyparse().
989  */
990 extern struct yysvf *yylstate[], **yylsp, **yyolsp; extern int yyprevious;
991 extern int *yyfnd;
992 
993 extern YYSTYPE *yypv;
994 extern int *yyps;
995 extern int yytmp;
996 extern int yystate;
997 extern int yynerrs;
998 extern int yyerrflag;
999 extern int yychar;
1000 extern YYSTYPE yylval;
1001 extern YYSTYPE yyval;
1002 extern int *yys;
1003 extern YYSTYPE *yyv;
1004 
1005 typedef struct mdb_lex_state {
1006 	/* Variables needed by yylex */
1007 	int	yyleng;
1008 	char	yytext[YYLMAX];
1009 	int	yymorfg;
1010 	int	yylineno;
1011 	void	*yyestate;
1012 	void	*yylstate[BUFSIZ];
1013 	void	*yylsp;
1014 	void	*yyolsp;
1015 	int	*yyfnd;
1016 	int	yyprevious;
1017 	void	*yybgin;
1018 	/* Variables needed by yyparse */
1019 	void 	*yypv;
1020 	int	*yyps;
1021 	int	yytmp;
1022 	int	yystate;
1023 	int	yynerrs;
1024 	int	yyerrflag;
1025 	int	yychar;
1026 	YYSTYPE	yylval;
1027 	YYSTYPE	yyval;
1028 	int	yys[YYMAXDEPTH];
1029 	YYSTYPE	yyv[YYMAXDEPTH];
1030 } mdb_lex_state_t;
1031 
1032 void
1033 mdb_lex_state_save(mdb_lex_state_t *s)
1034 {
1035 	ASSERT(s != NULL);
1036 
1037 	s->yyleng = yyleng;
1038 	s->yymorfg = yymorfg;
1039 	s->yylineno = yylineno;
1040 	s->yyestate = yyestate;
1041 	bcopy(yylstate, s->yylstate, YYLMAX * sizeof (void *));
1042 	s->yylsp = yylsp;
1043 	s->yyolsp = yyolsp;
1044 	s->yyfnd = yyfnd;
1045 	s->yyprevious = yyprevious;
1046 	s->yybgin = yybgin;
1047 
1048 	s->yypv = yypv;
1049 	s->yyps = yyps;
1050 	s->yystate = yystate;
1051 	s->yytmp = yytmp;
1052 	s->yynerrs = yynerrs;
1053 	s->yyerrflag = yyerrflag;
1054 	s->yychar = yychar;
1055 	s->yylval = yylval;
1056 	s->yyval = yyval;
1057 }
1058 
1059 void
1060 mdb_lex_state_restore(mdb_lex_state_t *s)
1061 {
1062 	ASSERT(s != NULL);
1063 
1064 	yyleng = s->yyleng;
1065 	yytext = s->yytext;
1066 	yymorfg = s->yymorfg;
1067 	yylineno = s->yylineno;
1068 	yyestate = s->yyestate;
1069 	bcopy(s->yylstate, yylstate, YYLMAX * sizeof (void *));
1070 	yylsp = s->yylsp;
1071 	yyolsp = s->yyolsp;
1072 	yyfnd = s->yyfnd;
1073 	yyprevious = s->yyprevious;
1074 	yybgin = s->yybgin;
1075 
1076 	yypv = s->yypv;
1077 	yyps = s->yyps;
1078 	yystate = s->yystate;
1079 	yytmp = s->yytmp;
1080 	yynerrs = s->yynerrs;
1081 	yyerrflag = s->yyerrflag;
1082 	yychar = s->yychar;
1083 	yylval = s->yylval;
1084 	yyval = s->yyval;
1085 	yys = s->yys;
1086 	yyv = s->yyv;
1087 }
1088 
1089 /*
1090  * Create and initialize the lex/yacc-specific state associated with a frame
1091  * structure.  We set all fields to known safe values so that
1092  * mdb_lex_state_restore() can be used safely before mdb_lex_state_save().
1093  */
1094 void
1095 mdb_lex_state_create(mdb_frame_t *f)
1096 {
1097 	f->f_lstate = mdb_alloc(sizeof (mdb_lex_state_t), UM_SLEEP);
1098 
1099 	yyleng = 0;
1100 	yymorfg = 0;
1101 	/* yytext is fine with garbage in it */
1102 	yytext = f->f_lstate->yytext;
1103 	yylineno = 1;
1104 	yyestate = NULL;
1105 	bzero(yylstate, YYLMAX * sizeof (void *));
1106 	yylsp = NULL;
1107 	yyolsp = NULL;
1108 	yyfnd = 0;
1109 	yyprevious = YYNEWLINE;
1110 	yys = f->f_lstate->yys;
1111 	yyv = f->f_lstate->yyv;
1112 	mdb_argvec_create(&f->f_argvec);
1113 	f->f_oldstate = 0;
1114 	mdb_lex_reset(); /* Responsible for setting yybgin */
1115 }
1116 
1117 void
1118 mdb_lex_state_destroy(mdb_frame_t *f)
1119 {
1120 	mdb_free(f->f_lstate, sizeof (mdb_lex_state_t));
1121 	f->f_lstate = NULL;
1122 	mdb_argvec_destroy(&f->f_argvec);
1123 }
1124 int yyvstop[] = {
1125 0,
1126 
1127 29,
1128 0,
1129 
1130 29,
1131 0,
1132 
1133 29,
1134 0,
1135 
1136 29,
1137 0,
1138 
1139 29,
1140 0,
1141 
1142 29,
1143 0,
1144 
1145 29,
1146 0,
1147 
1148 29,
1149 0,
1150 
1151 29,
1152 0,
1153 
1154 29,
1155 0,
1156 
1157 29,
1158 0,
1159 
1160 29,
1161 0,
1162 
1163 62,
1164 0,
1165 
1166 61,
1167 62,
1168 0,
1169 
1170 60,
1171 0,
1172 
1173 62,
1174 -25,
1175 0,
1176 
1177 60,
1178 62,
1179 0,
1180 
1181 13,
1182 62,
1183 0,
1184 
1185 13,
1186 61,
1187 62,
1188 0,
1189 
1190 13,
1191 62,
1192 -25,
1193 0,
1194 
1195 8,
1196 62,
1197 0,
1198 
1199 62,
1200 0,
1201 
1202 62,
1203 0,
1204 
1205 62,
1206 -21,
1207 0,
1208 
1209 62,
1210 0,
1211 
1212 58,
1213 62,
1214 0,
1215 
1216 20,
1217 62,
1218 0,
1219 
1220 56,
1221 62,
1222 0,
1223 
1224 56,
1225 62,
1226 0,
1227 
1228 62,
1229 0,
1230 
1231 62,
1232 0,
1233 
1234 20,
1235 62,
1236 0,
1237 
1238 18,
1239 62,
1240 0,
1241 
1242 20,
1243 62,
1244 0,
1245 
1246 20,
1247 62,
1248 0,
1249 
1250 56,
1251 58,
1252 62,
1253 0,
1254 
1255 31,
1256 62,
1257 0,
1258 
1259 9,
1260 62,
1261 0,
1262 
1263 62,
1264 0,
1265 
1266 31,
1267 62,
1268 0,
1269 
1270 30,
1271 31,
1272 62,
1273 0,
1274 
1275 11,
1276 62,
1277 0,
1278 
1279 29,
1280 62,
1281 0,
1282 
1283 10,
1284 62,
1285 0,
1286 
1287 62,
1288 -25,
1289 0,
1290 
1291 62,
1292 0,
1293 
1294 62,
1295 0,
1296 
1297 29,
1298 62,
1299 0,
1300 
1301 12,
1302 62,
1303 0,
1304 
1305 32,
1306 60,
1307 0,
1308 
1309 32,
1310 62,
1311 0,
1312 
1313 62,
1314 0,
1315 
1316 62,
1317 -22,
1318 0,
1319 
1320 62,
1321 0,
1322 
1323 59,
1324 62,
1325 0,
1326 
1327 57,
1328 62,
1329 0,
1330 
1331 57,
1332 62,
1333 0,
1334 
1335 32,
1336 60,
1337 62,
1338 0,
1339 
1340 62,
1341 0,
1342 
1343 62,
1344 0,
1345 
1346 62,
1347 0,
1348 
1349 57,
1350 59,
1351 62,
1352 0,
1353 
1354 33,
1355 62,
1356 0,
1357 
1358 -25,
1359 0,
1360 
1361 25,
1362 0,
1363 
1364 26,
1365 0,
1366 
1367 13,
1368 0,
1369 
1370 13,
1371 -25,
1372 0,
1373 
1374 13,
1375 26,
1376 0,
1377 
1378 13,
1379 0,
1380 
1381 6,
1382 0,
1383 
1384 16,
1385 0,
1386 
1387 15,
1388 0,
1389 
1390 15,
1391 0,
1392 
1393 -21,
1394 0,
1395 
1396 21,
1397 0,
1398 
1399 23,
1400 0,
1401 
1402 -21,
1403 0,
1404 
1405 58,
1406 0,
1407 
1408 19,
1409 0,
1410 
1411 56,
1412 0,
1413 
1414 34,
1415 0,
1416 
1417 35,
1418 0,
1419 
1420 38,
1421 0,
1422 
1423 4,
1424 0,
1425 
1426 40,
1427 0,
1428 
1429 56,
1430 58,
1431 0,
1432 
1433 28,
1434 0,
1435 
1436 30,
1437 0,
1438 
1439 29,
1440 0,
1441 
1442 -25,
1443 0,
1444 
1445 26,
1446 29,
1447 0,
1448 
1449 27,
1450 0,
1451 
1452 29,
1453 0,
1454 
1455 29,
1456 0,
1457 
1458 7,
1459 0,
1460 
1461 -22,
1462 0,
1463 
1464 22,
1465 0,
1466 
1467 24,
1468 0,
1469 
1470 -22,
1471 0,
1472 
1473 59,
1474 0,
1475 
1476 57,
1477 0,
1478 
1479 36,
1480 0,
1481 
1482 37,
1483 0,
1484 
1485 39,
1486 0,
1487 
1488 5,
1489 0,
1490 
1491 41,
1492 0,
1493 
1494 57,
1495 59,
1496 0,
1497 
1498 23,
1499 -21,
1500 0,
1501 
1502 1,
1503 0,
1504 
1505 46,
1506 0,
1507 
1508 48,
1509 0,
1510 
1511 52,
1512 0,
1513 
1514 54,
1515 0,
1516 
1517 14,
1518 0,
1519 
1520 2,
1521 0,
1522 
1523 29,
1524 0,
1525 
1526 3,
1527 0,
1528 
1529 24,
1530 -22,
1531 0,
1532 
1533 47,
1534 0,
1535 
1536 49,
1537 0,
1538 
1539 53,
1540 0,
1541 
1542 55,
1543 0,
1544 
1545 44,
1546 0,
1547 
1548 42,
1549 0,
1550 
1551 17,
1552 0,
1553 
1554 29,
1555 0,
1556 
1557 29,
1558 0,
1559 
1560 45,
1561 0,
1562 
1563 43,
1564 0,
1565 
1566 50,
1567 0,
1568 
1569 29,
1570 0,
1571 
1572 29,
1573 0,
1574 
1575 51,
1576 0,
1577 
1578 29,
1579 0,
1580 
1581 29,
1582 0,
1583 
1584 29,
1585 0,
1586 
1587 29,
1588 0,
1589 
1590 29,
1591 0,
1592 
1593 29,
1594 0,
1595 
1596 29,
1597 0,
1598 
1599 29,
1600 0,
1601 
1602 29,
1603 0,
1604 
1605 29,
1606 0,
1607 0};
1608 # define YYTYPE unsigned char
1609 struct yywork { YYTYPE verify, advance; } yycrank[] = {
1610 0,0,	0,0,	1,13,	0,0,
1611 0,0,	0,0,	0,0,	0,0,
1612 0,0,	0,0,	1,14,	1,15,
1613 0,0,	0,0,	0,0,	0,0,
1614 0,0,	104,0,	0,0,	19,0,
1615 0,0,	0,0,	0,0,	110,0,
1616 0,0,	0,0,	67,0,	0,0,
1617 0,0,	0,0,	68,0,	0,0,
1618 70,0,	0,0,	1,13,	1,16,
1619 0,0,	1,13,	1,13,	0,0,
1620 1,13,	0,0,	0,0,	0,0,
1621 0,0,	0,0,	80,132,	1,13,
1622 1,13,	1,13,	67,64,	1,13,
1623 110,143,	117,149,	23,76,	25,81,
1624 33,96,	1,13,	40,100,	1,13,
1625 1,17,	52,113,	1,13,	54,118,
1626 1,13,	1,13,	1,13,	3,18,
1627 19,0,	21,72,	32,95,	33,97,
1628 1,13,	51,112,	1,13,	3,19,
1629 60,128,	1,13,	61,129,	68,0,
1630 1,13,	70,0,	74,75,	48,0,
1631 48,0,	1,13,	87,135,	87,135,
1632 131,155,	1,13,	133,156,	6,25,
1633 137,157,	1,13,	121,151,	121,151,
1634 1,13,	1,13,	6,29,	3,18,
1635 3,20,	39,99,	3,18,	3,18,
1636 46,108,	3,18,	48,0,	48,0,
1637 67,64,	6,31,	48,0,	6,33,
1638 3,18,	3,18,	3,18,	140,158,
1639 3,18,	142,0,	148,164,	150,165,
1640 153,166,	48,111,	3,18,	0,0,
1641 3,18,	102,0,	102,0,	3,18,
1642 174,0,	3,18,	3,18,	3,18,
1643 4,18,	48,0,	0,0,	0,0,
1644 0,0,	3,18,	0,0,	3,18,
1645 4,19,	142,103,	3,18,	6,13,
1646 0,0,	3,18,	0,0,	0,0,
1647 102,0,	102,0,	3,18,	0,0,
1648 102,0,	0,0,	3,18,	0,0,
1649 0,0,	174,173,	3,18,	169,0,
1650 0,0,	3,18,	3,18,	0,0,
1651 4,18,	4,20,	0,0,	4,18,
1652 4,18,	0,0,	4,18,	0,0,
1653 0,0,	6,13,	0,0,	102,0,
1654 0,0,	4,18,	4,18,	4,18,
1655 0,0,	4,18,	0,0,	169,159,
1656 0,0,	0,0,	0,0,	4,18,
1657 169,173,	4,18,	0,0,	0,0,
1658 4,18,	0,0,	4,18,	4,18,
1659 4,18,	5,13,	48,0,	142,103,
1660 0,0,	0,0,	4,18,	0,0,
1661 4,18,	5,14,	5,15,	4,18,
1662 0,0,	0,0,	4,18,	0,0,
1663 0,0,	0,0,	0,0,	4,18,
1664 0,0,	0,0,	0,0,	4,18,
1665 0,0,	0,0,	0,0,	4,18,
1666 0,0,	0,0,	4,18,	4,18,
1667 0,0,	5,21,	5,16,	0,0,
1668 5,22,	5,23,	0,0,	5,24,
1669 0,0,	0,0,	5,25,	0,0,
1670 102,0,	169,174,	5,26,	5,27,
1671 5,28,	5,29,	5,29,	0,0,
1672 0,0,	0,0,	0,0,	7,37,
1673 5,29,	0,0,	5,30,	5,17,
1674 5,31,	5,32,	5,33,	5,34,
1675 5,35,	5,36,	0,0,	0,0,
1676 0,0,	0,0,	0,0,	5,26,
1677 0,0,	5,26,	0,0,	0,0,
1678 5,26,	0,0,	0,0,	5,26,
1679 0,0,	0,0,	0,0,	0,0,
1680 5,26,	0,0,	0,0,	7,38,
1681 5,26,	0,0,	7,39,	7,37,
1682 5,34,	0,0,	5,13,	5,26,
1683 5,13,	0,0,	0,0,	0,0,
1684 7,37,	7,40,	7,41,	0,0,
1685 7,41,	0,0,	0,0,	0,0,
1686 0,0,	8,37,	7,41,	0,0,
1687 7,37,	0,0,	0,0,	7,37,
1688 0,0,	7,37,	7,37,	7,37,
1689 0,0,	0,0,	0,0,	0,0,
1690 5,13,	7,37,	0,0,	7,37,
1691 0,0,	0,0,	7,37,	0,0,
1692 0,0,	7,37,	0,0,	0,0,
1693 0,0,	0,0,	7,37,	0,0,
1694 0,0,	8,38,	7,37,	0,0,
1695 8,39,	8,37,	7,37,	0,0,
1696 0,0,	7,37,	7,37,	0,0,
1697 0,0,	0,0,	8,37,	8,40,
1698 8,41,	0,0,	8,41,	0,0,
1699 0,0,	0,0,	0,0,	0,0,
1700 8,41,	0,0,	8,37,	0,0,
1701 0,0,	8,37,	0,0,	8,37,
1702 8,37,	8,37,	9,43,	0,0,
1703 0,0,	0,0,	7,42,	8,37,
1704 0,0,	8,37,	0,0,	0,0,
1705 8,37,	0,0,	0,0,	8,37,
1706 0,0,	0,0,	0,0,	0,0,
1707 8,37,	0,0,	0,0,	0,0,
1708 8,37,	0,0,	0,0,	0,0,
1709 8,37,	0,0,	0,0,	8,37,
1710 8,37,	0,0,	9,44,	9,45,
1711 0,0,	9,46,	9,43,	0,0,
1712 9,47,	0,0,	0,0,	0,0,
1713 0,0,	0,0,	0,0,	9,43,
1714 9,48,	9,43,	0,0,	9,43,
1715 0,0,	0,0,	0,0,	0,0,
1716 0,0,	9,43,	0,0,	9,43,
1717 8,42,	0,0,	9,43,	0,0,
1718 9,43,	9,43,	9,43,	10,43,
1719 0,0,	0,0,	0,0,	0,0,
1720 9,43,	0,0,	9,43,	0,0,
1721 0,0,	9,43,	0,0,	0,0,
1722 9,43,	0,0,	0,0,	0,0,
1723 0,0,	9,43,	0,0,	0,0,
1724 0,0,	9,43,	0,0,	0,0,
1725 0,0,	9,43,	0,0,	0,0,
1726 9,43,	9,43,	0,0,	10,44,
1727 10,45,	0,0,	10,46,	10,43,
1728 0,0,	10,47,	0,0,	0,0,
1729 0,0,	0,0,	0,0,	0,0,
1730 10,43,	10,48,	10,43,	0,0,
1731 10,43,	11,50,	0,0,	0,0,
1732 0,0,	0,0,	10,43,	0,0,
1733 10,43,	9,49,	0,0,	10,43,
1734 0,0,	10,43,	10,43,	10,43,
1735 0,0,	0,0,	0,0,	0,0,
1736 0,0,	10,43,	0,0,	10,43,
1737 11,51,	0,0,	10,43,	0,0,
1738 11,52,	10,43,	11,53,	0,0,
1739 0,0,	11,54,	10,43,	0,0,
1740 0,0,	11,55,	10,43,	11,56,
1741 11,57,	11,57,	10,43,	0,0,
1742 0,0,	10,43,	10,43,	11,57,
1743 0,0,	0,0,	11,58,	11,59,
1744 11,60,	11,61,	0,0,	0,0,
1745 11,62,	0,0,	0,0,	0,0,
1746 0,0,	0,0,	11,55,	0,0,
1747 11,55,	0,0,	0,0,	11,55,
1748 12,50,	0,0,	11,55,	0,0,
1749 0,0,	0,0,	10,49,	11,55,
1750 0,0,	0,0,	0,0,	11,55,
1751 0,0,	0,0,	0,0,	0,0,
1752 11,63,	11,13,	11,55,	0,0,
1753 0,0,	0,0,	0,0,	12,51,
1754 0,0,	0,0,	0,0,	12,52,
1755 0,0,	12,53,	0,0,	0,0,
1756 12,54,	0,0,	27,83,	0,0,
1757 12,55,	0,0,	12,56,	12,57,
1758 12,57,	0,0,	0,0,	0,0,
1759 0,0,	0,0,	12,57,	11,13,
1760 0,0,	12,58,	12,59,	12,60,
1761 12,61,	0,0,	0,0,	12,62,
1762 0,0,	27,83,	0,0,	0,0,
1763 0,0,	12,55,	16,64,	12,55,
1764 0,0,	0,0,	12,55,	0,0,
1765 0,0,	12,55,	16,64,	16,65,
1766 27,84,	0,0,	12,55,	0,0,
1767 0,0,	0,0,	12,55,	0,0,
1768 0,0,	0,0,	0,0,	12,63,
1769 12,13,	12,55,	88,136,	88,136,
1770 88,136,	88,136,	88,136,	88,136,
1771 88,136,	88,136,	16,64,	16,66,
1772 0,0,	16,64,	16,64,	0,0,
1773 16,64,	27,85,	27,85,	0,0,
1774 0,0,	0,0,	0,0,	16,64,
1775 16,64,	16,64,	0,0,	16,64,
1776 27,85,	0,0,	12,13,	27,85,
1777 0,0,	16,64,	0,0,	16,64,
1778 16,64,	0,0,	16,64,	0,0,
1779 16,64,	16,64,	16,64,	18,68,
1780 0,0,	0,0,	0,0,	0,0,
1781 16,64,	27,85,	16,64,	18,68,
1782 18,0,	16,64,	0,0,	0,0,
1783 16,64,	0,0,	0,0,	27,85,
1784 27,85,	16,64,	0,0,	0,0,
1785 0,0,	16,64,	0,0,	0,0,
1786 0,0,	16,67,	0,0,	0,0,
1787 16,64,	16,64,	0,0,	18,68,
1788 18,68,	0,0,	18,68,	18,68,
1789 0,0,	18,68,	0,0,	0,0,
1790 0,0,	0,0,	0,0,	0,0,
1791 18,68,	18,68,	18,68,	0,0,
1792 18,68,	0,0,	0,0,	0,0,
1793 0,0,	0,0,	18,68,	0,0,
1794 18,68,	18,0,	0,0,	18,68,
1795 0,0,	18,68,	18,68,	18,68,
1796 20,69,	0,0,	0,0,	0,0,
1797 0,0,	18,68,	0,0,	18,68,
1798 20,69,	0,0,	18,68,	0,0,
1799 0,0,	18,68,	0,0,	0,0,
1800 0,0,	0,0,	18,68,	0,0,
1801 0,0,	0,0,	18,68,	0,0,
1802 0,0,	0,0,	18,68,	0,0,
1803 0,0,	18,68,	18,68,	0,0,
1804 20,69,	20,70,	0,0,	20,69,
1805 20,69,	0,0,	20,69,	0,0,
1806 0,0,	0,0,	0,0,	0,0,
1807 0,0,	20,69,	20,69,	20,69,
1808 0,0,	20,69,	0,0,	0,0,
1809 0,0,	0,0,	0,0,	20,69,
1810 0,0,	20,69,	0,0,	0,0,
1811 20,69,	0,0,	20,69,	20,69,
1812 20,69,	0,0,	0,0,	0,0,
1813 0,0,	0,0,	20,69,	0,0,
1814 20,69,	22,73,	0,0,	20,69,
1815 0,0,	0,0,	20,69,	0,0,
1816 0,0,	0,0,	0,0,	20,69,
1817 0,0,	0,0,	0,0,	20,69,
1818 0,0,	0,0,	0,0,	20,71,
1819 0,0,	0,0,	20,69,	20,69,
1820 22,74,	0,0,	22,75,	22,73,
1821 22,73,	22,73,	22,73,	22,73,
1822 22,73,	22,73,	22,73,	22,73,
1823 22,73,	22,73,	22,73,	22,73,
1824 22,73,	22,73,	22,73,	22,73,
1825 22,73,	22,73,	22,73,	22,73,
1826 22,73,	22,73,	22,73,	22,73,
1827 22,73,	22,73,	22,73,	0,0,
1828 0,0,	0,0,	22,73,	22,73,
1829 22,73,	22,73,	22,73,	22,73,
1830 22,73,	22,73,	22,73,	22,73,
1831 22,73,	22,73,	22,73,	22,73,
1832 22,73,	22,73,	22,73,	22,73,
1833 22,73,	22,73,	22,73,	22,73,
1834 22,73,	22,73,	22,73,	22,73,
1835 22,73,	22,73,	22,73,	24,77,
1836 0,0,	0,0,	0,0,	0,0,
1837 0,0,	0,0,	0,0,	24,77,
1838 24,78,	41,101,	41,101,	41,101,
1839 41,101,	41,101,	41,101,	41,101,
1840 41,101,	41,101,	41,101,	89,137,
1841 89,137,	89,137,	89,137,	89,137,
1842 89,137,	89,137,	89,137,	89,137,
1843 89,137,	0,0,	0,0,	24,77,
1844 24,77,	0,0,	24,77,	24,77,
1845 0,0,	24,79,	0,0,	0,0,
1846 0,0,	0,0,	0,0,	0,0,
1847 24,77,	24,77,	24,77,	0,0,
1848 24,77,	0,0,	0,0,	0,0,
1849 0,0,	0,0,	24,77,	0,0,
1850 24,77,	24,77,	0,0,	24,77,
1851 0,0,	24,77,	24,77,	24,77,
1852 0,0,	0,0,	0,0,	0,0,
1853 0,0,	24,77,	0,0,	24,77,
1854 0,0,	0,0,	24,77,	0,0,
1855 0,0,	24,77,	0,0,	0,0,
1856 0,0,	0,0,	24,77,	0,0,
1857 0,0,	0,0,	24,77,	0,0,
1858 0,0,	0,0,	24,80,	0,0,
1859 0,0,	24,77,	24,77,	26,82,
1860 0,0,	26,82,	26,82,	26,82,
1861 26,82,	26,82,	26,82,	26,82,
1862 26,82,	26,82,	26,82,	0,0,
1863 0,0,	0,0,	0,0,	0,0,
1864 0,0,	0,0,	26,82,	26,82,
1865 26,82,	26,82,	26,82,	26,82,
1866 26,82,	26,82,	26,82,	26,82,
1867 26,82,	26,82,	26,82,	26,82,
1868 26,82,	26,82,	26,82,	26,82,
1869 26,82,	26,82,	26,82,	26,82,
1870 26,82,	26,82,	26,82,	26,82,
1871 0,0,	0,0,	0,0,	0,0,
1872 26,82,	26,82,	26,82,	26,82,
1873 26,82,	26,82,	26,82,	26,82,
1874 26,82,	26,82,	26,82,	26,82,
1875 26,82,	26,82,	26,82,	26,82,
1876 26,82,	26,82,	26,82,	26,82,
1877 26,82,	26,82,	26,82,	26,82,
1878 26,82,	26,82,	26,82,	26,82,
1879 28,86,	28,86,	28,86,	28,86,
1880 28,86,	28,86,	28,86,	28,86,
1881 28,86,	28,86,	0,0,	0,0,
1882 0,0,	0,0,	0,0,	0,0,
1883 0,0,	28,86,	28,86,	28,86,
1884 28,86,	28,86,	28,86,	0,0,
1885 0,0,	28,87,	0,0,	0,0,
1886 0,0,	0,0,	0,0,	28,88,
1887 0,0,	0,0,	0,0,	0,0,
1888 28,89,	0,0,	0,0,	0,0,
1889 28,90,	122,152,	122,152,	122,152,
1890 122,152,	122,152,	122,152,	122,152,
1891 122,152,	28,86,	28,86,	28,86,
1892 28,86,	28,86,	28,86,	0,0,
1893 0,0,	28,87,	0,0,	0,0,
1894 0,0,	0,0,	0,0,	28,88,
1895 0,0,	0,0,	0,0,	0,0,
1896 28,89,	0,0,	0,0,	0,0,
1897 28,90,	29,86,	29,86,	29,86,
1898 29,86,	29,86,	29,86,	29,86,
1899 29,86,	29,86,	29,86,	0,0,
1900 0,0,	0,0,	0,0,	0,0,
1901 0,0,	0,0,	29,86,	29,86,
1902 29,86,	29,86,	29,86,	29,86,
1903 123,153,	123,153,	123,153,	123,153,
1904 123,153,	123,153,	123,153,	123,153,
1905 123,153,	123,153,	0,0,	30,73,
1906 157,167,	157,167,	157,167,	157,167,
1907 157,167,	157,167,	157,167,	157,167,
1908 157,167,	157,167,	0,0,	0,0,
1909 0,0,	0,0,	29,86,	29,86,
1910 29,86,	29,86,	29,86,	29,86,
1911 30,91,	0,0,	0,0,	0,0,
1912 0,0,	30,73,	30,73,	30,73,
1913 30,73,	30,73,	30,73,	30,73,
1914 30,73,	30,73,	30,73,	30,73,
1915 30,73,	30,73,	30,73,	30,73,
1916 30,73,	30,73,	30,73,	30,73,
1917 30,73,	30,73,	30,73,	30,73,
1918 30,73,	30,73,	30,73,	30,73,
1919 30,73,	0,0,	0,0,	0,0,
1920 30,73,	30,73,	30,73,	30,73,
1921 30,73,	30,73,	30,73,	30,73,
1922 30,73,	30,73,	30,73,	30,73,
1923 30,73,	30,73,	30,73,	30,73,
1924 30,73,	30,73,	30,73,	30,73,
1925 30,73,	30,73,	30,73,	30,73,
1926 30,73,	30,73,	30,73,	30,73,
1927 30,73,	31,92,	0,0,	31,93,
1928 31,93,	31,93,	31,93,	31,93,
1929 31,93,	31,93,	31,93,	31,93,
1930 31,93,	0,0,	0,0,	31,94,
1931 0,0,	0,0,	0,0,	0,0,
1932 31,92,	31,92,	31,92,	31,92,
1933 31,92,	31,92,	31,92,	31,92,
1934 31,92,	31,92,	31,92,	31,92,
1935 31,92,	31,92,	31,92,	31,92,
1936 31,92,	31,92,	31,92,	31,92,
1937 31,92,	31,92,	31,92,	31,92,
1938 31,92,	31,92,	0,0,	0,0,
1939 0,0,	0,0,	31,92,	0,0,
1940 31,92,	31,92,	31,92,	31,92,
1941 31,92,	31,92,	31,92,	31,92,
1942 31,92,	31,92,	31,92,	31,92,
1943 31,92,	31,92,	31,92,	31,92,
1944 31,92,	31,92,	31,92,	31,92,
1945 31,92,	31,92,	31,92,	31,92,
1946 31,92,	31,92,	34,83,	0,0,
1947 0,0,	0,0,	0,0,	0,0,
1948 0,0,	36,98,	36,98,	36,98,
1949 36,98,	36,98,	36,98,	36,98,
1950 36,98,	36,98,	36,98,	0,0,
1951 0,0,	0,0,	0,0,	0,0,
1952 0,0,	34,83,	36,98,	36,98,
1953 36,98,	36,98,	36,98,	36,98,
1954 0,0,	0,0,	0,0,	57,120,
1955 57,120,	57,120,	57,120,	57,120,
1956 57,120,	57,120,	57,120,	57,120,
1957 57,120,	0,0,	0,0,	0,0,
1958 0,0,	0,0,	0,0,	0,0,
1959 57,120,	57,120,	57,120,	57,120,
1960 57,120,	57,120,	36,98,	36,98,
1961 36,98,	36,98,	36,98,	36,98,
1962 0,0,	0,0,	0,0,	0,0,
1963 0,0,	34,85,	34,85,	0,0,
1964 0,0,	0,0,	0,0,	0,0,
1965 0,0,	0,0,	0,0,	0,0,
1966 34,85,	0,0,	43,102,	34,85,
1967 57,120,	57,120,	57,120,	57,120,
1968 57,120,	57,120,	43,0,	43,0,
1969 0,0,	0,0,	0,0,	0,0,
1970 0,0,	0,0,	0,0,	0,0,
1971 0,0,	34,85,	0,0,	0,0,
1972 0,0,	0,0,	0,0,	0,0,
1973 0,0,	0,0,	0,0,	34,85,
1974 34,85,	43,0,	43,0,	43,103,
1975 0,0,	43,0,	43,102,	0,0,
1976 43,104,	0,0,	0,0,	0,0,
1977 0,0,	0,0,	0,0,	43,102,
1978 43,102,	43,102,	0,0,	43,102,
1979 0,0,	0,0,	0,0,	0,0,
1980 0,0,	43,102,	0,0,	43,102,
1981 43,0,	0,0,	43,102,	0,0,
1982 43,102,	43,102,	43,102,	0,0,
1983 0,0,	0,0,	0,0,	45,105,
1984 43,102,	0,0,	43,102,	0,0,
1985 0,0,	43,102,	0,0,	45,105,
1986 43,102,	0,0,	0,0,	0,0,
1987 0,0,	43,102,	0,0,	0,0,
1988 0,0,	43,102,	0,0,	0,0,
1989 0,0,	43,102,	0,0,	0,0,
1990 43,102,	43,102,	0,0,	0,0,
1991 0,0,	0,0,	0,0,	45,105,
1992 45,106,	0,0,	45,105,	45,105,
1993 0,0,	45,105,	0,0,	0,0,
1994 0,0,	0,0,	0,0,	0,0,
1995 45,105,	45,105,	45,105,	0,0,
1996 45,105,	0,0,	0,0,	0,0,
1997 0,0,	43,0,	45,105,	0,0,
1998 45,105,	45,105,	0,0,	45,105,
1999 0,0,	45,105,	45,105,	45,105,
2000 47,104,	0,0,	0,0,	0,0,
2001 0,0,	45,105,	0,0,	45,105,
2002 47,104,	47,0,	45,105,	0,0,
2003 0,0,	45,105,	0,0,	0,0,
2004 0,0,	0,0,	45,105,	0,0,
2005 0,0,	0,0,	45,105,	0,0,
2006 0,0,	0,0,	45,107,	0,0,
2007 0,0,	45,105,	45,105,	0,0,
2008 47,104,	47,104,	0,0,	47,104,
2009 47,104,	0,0,	47,109,	0,0,
2010 0,0,	0,0,	0,0,	0,0,
2011 0,0,	47,104,	47,104,	47,104,
2012 0,0,	47,104,	0,0,	0,0,
2013 0,0,	0,0,	0,0,	47,104,
2014 0,0,	47,104,	47,104,	0,0,
2015 47,104,	0,0,	47,104,	47,104,
2016 47,104,	53,114,	0,0,	0,0,
2017 0,0,	0,0,	47,104,	0,0,
2018 47,104,	53,114,	53,115,	47,104,
2019 0,0,	0,0,	47,104,	0,0,
2020 0,0,	0,0,	0,0,	47,104,
2021 0,0,	0,0,	0,0,	47,104,
2022 0,0,	0,0,	0,0,	47,110,
2023 0,0,	0,0,	47,104,	47,104,
2024 0,0,	53,114,	53,114,	0,0,
2025 53,114,	53,114,	0,0,	53,116,
2026 0,0,	0,0,	0,0,	0,0,
2027 0,0,	0,0,	53,114,	53,114,
2028 53,114,	0,0,	53,114,	0,0,
2029 0,0,	0,0,	0,0,	0,0,
2030 53,114,	0,0,	53,114,	53,114,
2031 0,0,	53,114,	0,0,	53,114,
2032 53,114,	53,114,	0,0,	0,0,
2033 0,0,	0,0,	0,0,	53,114,
2034 0,0,	53,114,	0,0,	0,0,
2035 53,114,	0,0,	0,0,	53,114,
2036 0,0,	0,0,	0,0,	0,0,
2037 53,114,	0,0,	0,0,	0,0,
2038 53,114,	0,0,	0,0,	0,0,
2039 53,117,	0,0,	0,0,	53,114,
2040 53,114,	55,119,	0,0,	55,119,
2041 55,119,	55,119,	55,119,	55,119,
2042 55,119,	55,119,	55,119,	55,119,
2043 55,119,	0,0,	0,0,	0,0,
2044 0,0,	0,0,	0,0,	0,0,
2045 55,119,	55,119,	55,119,	55,119,
2046 55,119,	55,119,	55,119,	55,119,
2047 55,119,	55,119,	55,119,	55,119,
2048 55,119,	55,119,	55,119,	55,119,
2049 55,119,	55,119,	55,119,	55,119,
2050 55,119,	55,119,	55,119,	55,119,
2051 55,119,	55,119,	0,0,	0,0,
2052 0,0,	0,0,	55,119,	55,119,
2053 55,119,	55,119,	55,119,	55,119,
2054 55,119,	55,119,	55,119,	55,119,
2055 55,119,	55,119,	55,119,	55,119,
2056 55,119,	55,119,	55,119,	55,119,
2057 55,119,	55,119,	55,119,	55,119,
2058 55,119,	55,119,	55,119,	55,119,
2059 55,119,	55,119,	56,120,	56,120,
2060 56,120,	56,120,	56,120,	56,120,
2061 56,120,	56,120,	56,120,	56,120,
2062 0,0,	0,0,	0,0,	0,0,
2063 0,0,	0,0,	0,0,	56,120,
2064 56,120,	56,120,	56,120,	56,120,
2065 56,120,	0,0,	0,0,	56,121,
2066 0,0,	0,0,	0,0,	0,0,
2067 0,0,	56,122,	0,0,	0,0,
2068 0,0,	0,0,	56,123,	0,0,
2069 0,0,	0,0,	56,124,	0,0,
2070 0,0,	0,0,	0,0,	0,0,
2071 0,0,	0,0,	0,0,	56,120,
2072 56,120,	56,120,	56,120,	56,120,
2073 56,120,	0,0,	0,0,	56,121,
2074 0,0,	0,0,	0,0,	0,0,
2075 0,0,	56,122,	0,0,	0,0,
2076 0,0,	0,0,	56,123,	0,0,
2077 0,0,	59,125,	56,124,	59,126,
2078 59,126,	59,126,	59,126,	59,126,
2079 59,126,	59,126,	59,126,	59,126,
2080 59,126,	0,0,	0,0,	59,127,
2081 0,0,	0,0,	0,0,	0,0,
2082 59,125,	59,125,	59,125,	59,125,
2083 59,125,	59,125,	59,125,	59,125,
2084 59,125,	59,125,	59,125,	59,125,
2085 59,125,	59,125,	59,125,	59,125,
2086 59,125,	59,125,	59,125,	59,125,
2087 59,125,	59,125,	59,125,	59,125,
2088 59,125,	59,125,	0,0,	0,0,
2089 0,0,	0,0,	59,125,	0,0,
2090 59,125,	59,125,	59,125,	59,125,
2091 59,125,	59,125,	59,125,	59,125,
2092 59,125,	59,125,	59,125,	59,125,
2093 59,125,	59,125,	59,125,	59,125,
2094 59,125,	59,125,	59,125,	59,125,
2095 59,125,	59,125,	59,125,	59,125,
2096 59,125,	59,125,	62,130,	62,130,
2097 62,130,	62,130,	62,130,	62,130,
2098 62,130,	62,130,	62,130,	62,130,
2099 0,0,	0,0,	0,0,	0,0,
2100 0,0,	0,0,	0,0,	62,130,
2101 62,130,	62,130,	62,130,	62,130,
2102 62,130,	69,69,	0,0,	0,0,
2103 0,0,	0,0,	0,0,	0,0,
2104 0,0,	69,69,	0,0,	139,139,
2105 139,139,	139,139,	139,139,	139,139,
2106 139,139,	139,139,	139,139,	139,139,
2107 139,139,	0,0,	0,0,	0,0,
2108 0,0,	0,0,	0,0,	62,130,
2109 62,130,	62,130,	62,130,	62,130,
2110 62,130,	69,69,	69,70,	0,0,
2111 69,69,	69,69,	0,0,	69,69,
2112 0,0,	0,0,	0,0,	0,0,
2113 0,0,	0,0,	69,69,	69,69,
2114 69,69,	0,0,	69,69,	0,0,
2115 0,0,	0,0,	0,0,	0,0,
2116 69,69,	0,0,	69,69,	139,139,
2117 0,0,	69,69,	0,0,	69,69,
2118 69,69,	69,69,	71,69,	0,0,
2119 0,0,	0,0,	0,0,	69,69,
2120 0,0,	69,69,	71,69,	71,0,
2121 69,69,	0,0,	0,0,	69,69,
2122 0,0,	0,0,	0,0,	0,0,
2123 69,69,	0,0,	0,0,	0,0,
2124 69,69,	0,0,	0,0,	0,0,
2125 69,71,	0,0,	0,0,	69,69,
2126 69,69,	0,0,	71,69,	71,69,
2127 0,0,	71,69,	71,69,	0,0,
2128 71,69,	0,0,	0,0,	0,0,
2129 0,0,	0,0,	0,0,	71,69,
2130 71,69,	71,69,	0,0,	71,69,
2131 0,0,	0,0,	0,0,	0,0,
2132 0,0,	71,69,	0,0,	71,69,
2133 0,0,	0,0,	71,69,	0,0,
2134 71,69,	71,69,	71,69,	0,0,
2135 0,0,	0,0,	0,0,	0,0,
2136 71,69,	0,0,	71,69,	0,0,
2137 0,0,	71,69,	0,0,	0,0,
2138 71,69,	0,0,	0,0,	0,0,
2139 0,0,	71,69,	0,0,	0,0,
2140 0,0,	71,69,	0,0,	0,0,
2141 0,0,	71,69,	0,0,	0,0,
2142 71,69,	71,69,	76,131,	76,131,
2143 76,131,	76,131,	76,131,	76,131,
2144 76,131,	76,131,	76,131,	76,131,
2145 0,0,	0,0,	0,0,	0,0,
2146 0,0,	0,0,	0,0,	76,131,
2147 76,131,	76,131,	76,131,	76,131,
2148 76,131,	76,131,	76,131,	76,131,
2149 76,131,	76,131,	76,131,	76,131,
2150 76,131,	76,131,	76,131,	76,131,
2151 76,131,	76,131,	76,131,	76,131,
2152 76,131,	76,131,	76,131,	76,131,
2153 76,131,	0,0,	0,0,	0,0,
2154 0,0,	0,0,	0,0,	76,131,
2155 76,131,	76,131,	76,131,	76,131,
2156 76,131,	76,131,	76,131,	76,131,
2157 76,131,	76,131,	76,131,	76,131,
2158 76,131,	76,131,	76,131,	76,131,
2159 76,131,	76,131,	76,131,	76,131,
2160 76,131,	76,131,	76,131,	76,131,
2161 76,131,	81,133,	81,133,	81,133,
2162 81,133,	81,133,	81,133,	81,133,
2163 81,133,	81,133,	81,133,	0,0,
2164 0,0,	0,0,	0,0,	0,0,
2165 0,0,	0,0,	81,133,	81,133,
2166 81,133,	81,133,	81,133,	81,133,
2167 81,133,	81,133,	81,133,	81,133,
2168 81,133,	81,133,	81,133,	81,133,
2169 81,133,	81,133,	81,133,	81,133,
2170 81,133,	81,133,	81,133,	81,133,
2171 81,133,	81,133,	81,133,	81,133,
2172 0,0,	0,0,	0,0,	0,0,
2173 0,0,	0,0,	81,133,	81,133,
2174 81,133,	81,133,	81,133,	81,133,
2175 81,133,	81,133,	81,133,	81,133,
2176 81,133,	81,133,	81,133,	81,133,
2177 81,133,	81,133,	81,133,	81,133,
2178 81,133,	81,133,	81,133,	81,133,
2179 81,133,	81,133,	81,133,	81,133,
2180 84,84,	0,0,	0,0,	0,0,
2181 0,0,	0,0,	0,0,	0,0,
2182 84,84,	84,134,	166,171,	166,171,
2183 166,171,	166,171,	166,171,	166,171,
2184 166,171,	166,171,	166,171,	166,171,
2185 0,0,	0,0,	0,0,	0,0,
2186 0,0,	0,0,	0,0,	0,0,
2187 0,0,	0,0,	0,0,	0,0,
2188 84,84,	84,84,	0,0,	84,84,
2189 84,84,	0,0,	84,84,	0,0,
2190 0,0,	0,0,	0,0,	0,0,
2191 0,0,	84,84,	84,84,	84,84,
2192 0,0,	84,84,	0,0,	0,0,
2193 0,0,	0,0,	0,0,	84,84,
2194 0,0,	84,84,	84,84,	0,0,
2195 84,84,	0,0,	84,84,	84,84,
2196 84,84,	0,0,	0,0,	0,0,
2197 0,0,	0,0,	84,84,	0,0,
2198 84,84,	0,0,	0,0,	84,84,
2199 0,0,	0,0,	84,84,	0,0,
2200 0,0,	0,0,	0,0,	84,84,
2201 0,0,	0,0,	0,0,	84,84,
2202 0,0,	0,0,	0,0,	84,84,
2203 0,0,	0,0,	84,84,	84,84,
2204 90,138,	90,138,	90,138,	90,138,
2205 90,138,	90,138,	90,138,	90,138,
2206 90,138,	90,138,	0,0,	0,0,
2207 0,0,	0,0,	0,0,	0,0,
2208 0,0,	90,138,	90,138,	90,138,
2209 90,138,	90,138,	90,138,	0,0,
2210 0,0,	0,0,	0,0,	0,0,
2211 0,0,	0,0,	0,0,	0,0,
2212 0,0,	0,0,	0,0,	0,0,
2213 91,139,	0,0,	0,0,	0,0,
2214 0,0,	0,0,	0,0,	0,0,
2215 0,0,	0,0,	0,0,	0,0,
2216 0,0,	90,138,	90,138,	90,138,
2217 90,138,	90,138,	90,138,	91,139,
2218 91,139,	91,139,	91,139,	91,139,
2219 91,139,	91,139,	91,139,	91,139,
2220 91,139,	91,139,	91,139,	91,139,
2221 91,139,	91,139,	91,139,	91,139,
2222 91,139,	91,139,	91,139,	91,139,
2223 91,139,	91,139,	91,139,	91,139,
2224 91,139,	0,0,	0,0,	0,0,
2225 0,0,	91,139,	0,0,	91,139,
2226 91,139,	91,139,	91,139,	91,139,
2227 91,139,	91,139,	91,139,	91,139,
2228 91,139,	91,139,	91,139,	91,139,
2229 91,139,	91,139,	91,139,	91,139,
2230 91,139,	91,139,	91,139,	91,139,
2231 91,139,	91,139,	91,139,	91,139,
2232 91,139,	92,92,	0,0,	92,92,
2233 92,92,	92,92,	92,92,	92,92,
2234 92,92,	92,92,	92,92,	92,92,
2235 92,92,	0,0,	0,0,	0,0,
2236 0,0,	0,0,	0,0,	0,0,
2237 92,92,	92,92,	92,92,	92,92,
2238 92,92,	92,92,	92,92,	92,92,
2239 92,92,	92,92,	92,92,	92,92,
2240 92,92,	92,92,	92,92,	92,92,
2241 92,92,	92,92,	92,92,	92,92,
2242 92,92,	92,92,	92,92,	92,92,
2243 92,92,	92,92,	0,0,	0,0,
2244 0,0,	0,0,	92,92,	92,92,
2245 92,92,	92,92,	92,92,	92,92,
2246 92,92,	92,92,	92,92,	92,92,
2247 92,92,	92,92,	92,92,	92,92,
2248 92,92,	92,92,	92,92,	92,92,
2249 92,92,	92,92,	92,92,	92,92,
2250 92,92,	92,92,	92,92,	92,92,
2251 92,92,	92,92,	96,140,	96,140,
2252 96,140,	96,140,	96,140,	96,140,
2253 96,140,	96,140,	96,140,	96,140,
2254 0,0,	0,0,	0,0,	0,0,
2255 0,0,	0,0,	0,0,	96,140,
2256 96,140,	96,140,	96,140,	96,140,
2257 96,140,	96,140,	96,140,	96,140,
2258 96,140,	96,140,	96,140,	96,140,
2259 96,140,	96,140,	96,140,	96,140,
2260 96,140,	96,140,	96,140,	96,140,
2261 96,140,	96,140,	96,140,	96,140,
2262 96,140,	0,0,	0,0,	0,0,
2263 0,0,	0,0,	0,0,	96,140,
2264 96,140,	96,140,	96,140,	96,140,
2265 96,140,	96,140,	96,140,	96,140,
2266 96,140,	96,140,	96,140,	96,140,
2267 96,140,	96,140,	96,140,	96,140,
2268 96,140,	96,140,	96,140,	96,140,
2269 96,140,	96,140,	96,140,	96,140,
2270 96,140,	98,98,	98,98,	98,98,
2271 98,98,	98,98,	98,98,	98,98,
2272 98,98,	98,98,	98,98,	0,0,
2273 0,0,	0,0,	0,0,	0,0,
2274 0,0,	0,0,	98,98,	98,98,
2275 98,98,	98,98,	98,98,	98,98,
2276 100,100,	0,0,	0,0,	0,0,
2277 0,0,	0,0,	0,0,	0,0,
2278 100,100,	100,141,	0,0,	0,0,
2279 0,0,	0,0,	0,0,	0,0,
2280 0,0,	0,0,	0,0,	0,0,
2281 0,0,	0,0,	0,0,	0,0,
2282 0,0,	0,0,	98,98,	98,98,
2283 98,98,	98,98,	98,98,	98,98,
2284 100,100,	100,100,	0,0,	100,100,
2285 100,100,	0,0,	100,100,	0,0,
2286 0,0,	0,0,	0,0,	0,0,
2287 0,0,	100,100,	100,100,	100,100,
2288 0,0,	100,100,	0,0,	0,0,
2289 0,0,	0,0,	0,0,	100,100,
2290 0,0,	100,100,	100,100,	0,0,
2291 100,100,	0,0,	100,100,	100,100,
2292 100,100,	103,103,	0,0,	0,0,
2293 0,0,	0,0,	100,100,	0,0,
2294 100,100,	103,103,	103,0,	100,100,
2295 0,0,	0,0,	100,100,	0,0,
2296 0,0,	0,0,	0,0,	100,100,
2297 0,0,	0,0,	0,0,	100,100,
2298 0,0,	0,0,	0,0,	100,100,
2299 0,0,	0,0,	100,100,	100,100,
2300 0,0,	103,103,	103,109,	0,0,
2301 103,103,	103,103,	0,0,	103,103,
2302 0,0,	0,0,	0,0,	0,0,
2303 0,0,	0,0,	103,103,	103,103,
2304 103,103,	0,0,	103,103,	0,0,
2305 0,0,	0,0,	0,0,	0,0,
2306 103,103,	0,0,	103,103,	103,103,
2307 0,0,	103,103,	0,0,	103,103,
2308 103,103,	103,103,	105,105,	0,0,
2309 0,0,	0,0,	0,0,	103,103,
2310 0,0,	103,103,	105,105,	0,0,
2311 103,103,	0,0,	0,0,	103,103,
2312 0,0,	0,0,	0,0,	0,0,
2313 103,103,	0,0,	0,0,	0,0,
2314 103,103,	0,0,	0,0,	0,0,
2315 103,142,	0,0,	0,0,	103,103,
2316 103,103,	0,0,	105,105,	105,106,
2317 0,0,	105,105,	105,105,	0,0,
2318 105,105,	0,0,	0,0,	0,0,
2319 0,0,	0,0,	0,0,	105,105,
2320 105,105,	105,105,	0,0,	105,105,
2321 0,0,	0,0,	0,0,	0,0,
2322 0,0,	105,105,	0,0,	105,105,
2323 105,105,	0,0,	105,105,	0,0,
2324 105,105,	105,105,	105,105,	106,109,
2325 0,0,	0,0,	0,0,	0,0,
2326 105,105,	0,0,	105,105,	106,0,
2327 106,0,	105,105,	0,0,	0,0,
2328 105,105,	0,0,	0,0,	0,0,
2329 0,0,	105,105,	0,0,	0,0,
2330 0,0,	105,105,	0,0,	0,0,
2331 0,0,	105,107,	0,0,	0,0,
2332 105,105,	105,105,	106,0,	106,0,
2333 0,0,	0,0,	106,0,	106,109,
2334 0,0,	0,0,	0,0,	0,0,
2335 0,0,	0,0,	0,0,	0,0,
2336 106,109,	106,109,	106,109,	0,0,
2337 106,109,	0,0,	0,0,	0,0,
2338 0,0,	0,0,	106,109,	0,0,
2339 106,109,	106,0,	0,0,	106,109,
2340 0,0,	106,109,	106,109,	106,109,
2341 0,0,	0,0,	0,0,	0,0,
2342 0,0,	106,109,	107,105,	106,109,
2343 0,0,	0,0,	106,109,	0,0,
2344 0,0,	106,109,	107,105,	107,0,
2345 0,0,	0,0,	106,109,	0,0,
2346 0,0,	0,0,	106,109,	0,0,
2347 0,0,	0,0,	106,109,	0,0,
2348 0,0,	106,109,	106,109,	0,0,
2349 0,0,	0,0,	0,0,	0,0,
2350 0,0,	0,0,	107,105,	107,105,
2351 0,0,	107,105,	107,105,	0,0,
2352 107,105,	0,0,	0,0,	0,0,
2353 0,0,	0,0,	0,0,	107,105,
2354 107,105,	107,105,	0,0,	107,105,
2355 0,0,	0,0,	106,0,	0,0,
2356 0,0,	107,105,	0,0,	107,105,
2357 107,105,	0,0,	107,105,	0,0,
2358 107,105,	107,105,	107,105,	109,109,
2359 0,0,	0,0,	0,0,	0,0,
2360 107,105,	0,0,	107,105,	109,0,
2361 109,0,	107,105,	0,0,	0,0,
2362 107,105,	0,0,	0,0,	0,0,
2363 0,0,	107,105,	0,0,	0,0,
2364 0,0,	107,105,	0,0,	0,0,
2365 0,0,	107,105,	0,0,	0,0,
2366 107,105,	107,105,	109,0,	109,0,
2367 0,0,	0,0,	109,0,	109,109,
2368 0,0,	0,0,	0,0,	0,0,
2369 0,0,	0,0,	0,0,	0,0,
2370 109,109,	109,109,	109,109,	0,0,
2371 109,109,	0,0,	0,0,	0,0,
2372 0,0,	0,0,	109,109,	0,0,
2373 109,109,	109,0,	0,0,	109,109,
2374 0,0,	109,109,	109,109,	109,109,
2375 0,0,	0,0,	0,0,	0,0,
2376 0,0,	109,109,	111,111,	109,109,
2377 0,0,	0,0,	109,109,	0,0,
2378 0,0,	109,109,	111,144,	111,145,
2379 0,0,	0,0,	109,109,	0,0,
2380 0,0,	0,0,	109,109,	0,0,
2381 0,0,	0,0,	109,109,	0,0,
2382 0,0,	109,109,	109,109,	0,0,
2383 0,0,	0,0,	0,0,	0,0,
2384 0,0,	0,0,	111,144,	111,146,
2385 0,0,	111,144,	111,111,	0,0,
2386 111,147,	0,0,	0,0,	0,0,
2387 0,0,	0,0,	0,0,	111,111,
2388 111,111,	111,111,	0,0,	111,111,
2389 0,0,	0,0,	109,0,	0,0,
2390 0,0,	111,111,	0,0,	111,111,
2391 111,144,	0,0,	111,111,	0,0,
2392 111,111,	111,111,	111,111,	0,0,
2393 0,0,	0,0,	0,0,	0,0,
2394 111,111,	0,0,	111,111,	0,0,
2395 0,0,	111,111,	0,0,	0,0,
2396 111,111,	0,0,	0,0,	0,0,
2397 0,0,	111,111,	0,0,	0,0,
2398 0,0,	111,111,	0,0,	0,0,
2399 0,0,	111,111,	0,0,	0,0,
2400 111,111,	111,111,	113,148,	113,148,
2401 113,148,	113,148,	113,148,	113,148,
2402 113,148,	113,148,	113,148,	113,148,
2403 0,0,	0,0,	0,0,	0,0,
2404 0,0,	0,0,	0,0,	113,148,
2405 113,148,	113,148,	113,148,	113,148,
2406 113,148,	113,148,	113,148,	113,148,
2407 113,148,	113,148,	113,148,	113,148,
2408 113,148,	113,148,	113,148,	113,148,
2409 113,148,	113,148,	113,148,	113,148,
2410 113,148,	113,148,	113,148,	113,148,
2411 113,148,	0,0,	0,0,	0,0,
2412 0,0,	0,0,	0,0,	113,148,
2413 113,148,	113,148,	113,148,	113,148,
2414 113,148,	113,148,	113,148,	113,148,
2415 113,148,	113,148,	113,148,	113,148,
2416 113,148,	113,148,	113,148,	113,148,
2417 113,148,	113,148,	113,148,	113,148,
2418 113,148,	113,148,	113,148,	113,148,
2419 113,148,	118,150,	118,150,	118,150,
2420 118,150,	118,150,	118,150,	118,150,
2421 118,150,	118,150,	118,150,	0,0,
2422 0,0,	0,0,	0,0,	0,0,
2423 0,0,	0,0,	118,150,	118,150,
2424 118,150,	118,150,	118,150,	118,150,
2425 118,150,	118,150,	118,150,	118,150,
2426 118,150,	118,150,	118,150,	118,150,
2427 118,150,	118,150,	118,150,	118,150,
2428 118,150,	118,150,	118,150,	118,150,
2429 118,150,	118,150,	118,150,	118,150,
2430 0,0,	0,0,	0,0,	0,0,
2431 0,0,	0,0,	118,150,	118,150,
2432 118,150,	118,150,	118,150,	118,150,
2433 118,150,	118,150,	118,150,	118,150,
2434 118,150,	118,150,	118,150,	118,150,
2435 118,150,	118,150,	118,150,	118,150,
2436 118,150,	118,150,	118,150,	118,150,
2437 118,150,	118,150,	118,150,	118,150,
2438 124,154,	124,154,	124,154,	124,154,
2439 124,154,	124,154,	124,154,	124,154,
2440 124,154,	124,154,	0,0,	0,0,
2441 0,0,	0,0,	0,0,	0,0,
2442 0,0,	124,154,	124,154,	124,154,
2443 124,154,	124,154,	124,154,	0,0,
2444 0,0,	0,0,	0,0,	0,0,
2445 0,0,	0,0,	0,0,	0,0,
2446 0,0,	0,0,	0,0,	0,0,
2447 125,125,	0,0,	125,125,	125,125,
2448 125,125,	125,125,	125,125,	125,125,
2449 125,125,	125,125,	125,125,	125,125,
2450 0,0,	124,154,	124,154,	124,154,
2451 124,154,	124,154,	124,154,	125,125,
2452 125,125,	125,125,	125,125,	125,125,
2453 125,125,	125,125,	125,125,	125,125,
2454 125,125,	125,125,	125,125,	125,125,
2455 125,125,	125,125,	125,125,	125,125,
2456 125,125,	125,125,	125,125,	125,125,
2457 125,125,	125,125,	125,125,	125,125,
2458 125,125,	0,0,	0,0,	0,0,
2459 0,0,	125,125,	125,125,	125,125,
2460 125,125,	125,125,	125,125,	125,125,
2461 125,125,	125,125,	125,125,	125,125,
2462 125,125,	125,125,	125,125,	125,125,
2463 125,125,	125,125,	125,125,	125,125,
2464 125,125,	125,125,	125,125,	125,125,
2465 125,125,	125,125,	125,125,	125,125,
2466 125,125,	130,130,	130,130,	130,130,
2467 130,130,	130,130,	130,130,	130,130,
2468 130,130,	130,130,	130,130,	0,0,
2469 0,0,	0,0,	0,0,	0,0,
2470 0,0,	0,0,	130,130,	130,130,
2471 130,130,	130,130,	130,130,	130,130,
2472 143,143,	0,0,	0,0,	0,0,
2473 0,0,	0,0,	0,0,	0,0,
2474 0,0,	143,0,	0,0,	0,0,
2475 0,0,	0,0,	0,0,	0,0,
2476 0,0,	0,0,	0,0,	0,0,
2477 0,0,	0,0,	0,0,	0,0,
2478 0,0,	0,0,	130,130,	130,130,
2479 130,130,	130,130,	130,130,	130,130,
2480 0,0,	143,159,	0,0,	0,0,
2481 143,143,	0,0,	143,143,	0,0,
2482 0,0,	0,0,	0,0,	144,144,
2483 0,0,	143,143,	143,143,	143,143,
2484 0,0,	143,143,	0,0,	0,0,
2485 0,0,	0,0,	0,0,	143,143,
2486 0,0,	143,143,	0,0,	0,0,
2487 143,143,	0,0,	143,143,	143,143,
2488 143,143,	0,0,	0,0,	0,0,
2489 0,0,	0,0,	143,143,	0,0,
2490 143,143,	0,0,	0,0,	143,143,
2491 144,144,	0,0,	143,143,	144,144,
2492 0,0,	144,144,	0,0,	143,143,
2493 0,0,	0,0,	0,0,	143,143,
2494 144,144,	144,144,	144,144,	143,160,
2495 144,144,	0,0,	143,143,	143,143,
2496 0,0,	0,0,	144,144,	0,0,
2497 144,144,	0,0,	0,0,	144,144,
2498 0,0,	144,144,	144,144,	144,144,
2499 146,146,	0,0,	0,0,	0,0,
2500 0,0,	144,144,	0,0,	144,144,
2501 146,146,	0,0,	144,144,	0,0,
2502 0,0,	144,144,	0,0,	0,0,
2503 0,0,	0,0,	144,144,	0,0,
2504 0,0,	0,0,	144,144,	0,0,
2505 0,0,	0,0,	144,144,	0,0,
2506 0,0,	144,144,	144,144,	0,0,
2507 146,146,	146,161,	0,0,	146,146,
2508 146,146,	0,0,	146,146,	0,0,
2509 0,0,	0,0,	0,0,	0,0,
2510 0,0,	146,146,	146,146,	146,146,
2511 0,0,	146,146,	0,0,	0,0,
2512 0,0,	0,0,	0,0,	146,146,
2513 0,0,	146,146,	146,146,	0,0,
2514 146,146,	0,0,	146,146,	146,146,
2515 146,146,	147,147,	0,0,	0,0,
2516 0,0,	0,0,	146,146,	0,0,
2517 146,146,	147,147,	0,0,	146,146,
2518 0,0,	0,0,	146,146,	0,0,
2519 0,0,	0,0,	0,0,	146,146,
2520 0,0,	0,0,	0,0,	146,146,
2521 0,0,	0,0,	0,0,	146,162,
2522 0,0,	0,0,	146,146,	146,146,
2523 0,0,	147,147,	147,147,	0,0,
2524 147,147,	147,147,	0,0,	147,161,
2525 0,0,	0,0,	0,0,	0,0,
2526 0,0,	0,0,	147,147,	147,147,
2527 147,147,	0,0,	147,147,	0,0,
2528 0,0,	0,0,	0,0,	0,0,
2529 147,147,	0,0,	147,147,	147,147,
2530 0,0,	147,147,	0,0,	147,147,
2531 147,147,	147,147,	159,159,	0,0,
2532 0,0,	0,0,	0,0,	147,147,
2533 0,0,	147,147,	159,159,	159,0,
2534 147,147,	0,0,	0,0,	147,147,
2535 0,0,	0,0,	0,0,	0,0,
2536 147,147,	0,0,	0,0,	0,0,
2537 147,147,	0,0,	0,0,	0,0,
2538 147,163,	0,0,	0,0,	147,147,
2539 147,147,	0,0,	159,159,	159,143,
2540 0,0,	159,159,	159,159,	0,0,
2541 159,168,	0,0,	0,0,	0,0,
2542 0,0,	160,143,	0,0,	159,159,
2543 159,159,	159,159,	0,0,	159,159,
2544 0,0,	0,0,	160,0,	0,0,
2545 0,0,	159,159,	0,0,	159,159,
2546 159,159,	0,0,	159,159,	0,0,
2547 159,159,	159,159,	159,159,	0,0,
2548 0,0,	0,0,	0,0,	0,0,
2549 159,159,	0,0,	159,159,	0,0,
2550 0,0,	159,159,	160,159,	0,0,
2551 159,159,	160,143,	0,0,	160,143,
2552 0,0,	159,159,	0,0,	0,0,
2553 161,161,	159,159,	160,143,	160,143,
2554 160,143,	159,169,	160,143,	0,0,
2555 159,159,	159,159,	0,0,	0,0,
2556 160,143,	0,0,	160,143,	0,0,
2557 0,0,	160,143,	0,0,	160,143,
2558 160,143,	160,143,	0,0,	0,0,
2559 0,0,	0,0,	0,0,	160,143,
2560 0,0,	160,143,	0,0,	0,0,
2561 160,143,	0,0,	0,0,	160,143,
2562 161,161,	0,0,	0,0,	0,0,
2563 160,143,	0,0,	0,0,	0,0,
2564 160,143,	161,161,	161,161,	161,161,
2565 160,160,	161,161,	0,0,	160,143,
2566 160,143,	0,0,	0,0,	161,161,
2567 0,0,	161,161,	0,0,	0,0,
2568 161,161,	162,146,	161,161,	161,161,
2569 161,161,	0,0,	0,0,	0,0,
2570 0,0,	162,146,	161,161,	0,0,
2571 161,161,	0,0,	0,0,	161,161,
2572 0,0,	0,0,	161,161,	0,0,
2573 0,0,	0,0,	0,0,	161,161,
2574 0,0,	0,0,	0,0,	161,161,
2575 0,0,	0,0,	0,0,	161,161,
2576 0,0,	162,146,	161,161,	161,161,
2577 162,146,	162,146,	0,0,	162,146,
2578 0,0,	0,0,	0,0,	0,0,
2579 0,0,	0,0,	162,146,	162,146,
2580 162,146,	0,0,	162,146,	0,0,
2581 0,0,	0,0,	0,0,	0,0,
2582 162,146,	0,0,	162,146,	162,146,
2583 0,0,	162,146,	0,0,	162,146,
2584 162,146,	162,146,	163,147,	0,0,
2585 0,0,	0,0,	0,0,	162,146,
2586 0,0,	162,146,	163,147,	0,0,
2587 162,146,	0,0,	0,0,	162,146,
2588 0,0,	0,0,	0,0,	0,0,
2589 162,146,	0,0,	0,0,	0,0,
2590 162,146,	0,0,	0,0,	0,0,
2591 162,146,	0,0,	0,0,	162,146,
2592 162,146,	0,0,	163,147,	163,147,
2593 0,0,	163,147,	163,147,	0,0,
2594 163,170,	0,0,	0,0,	0,0,
2595 0,0,	168,168,	0,0,	163,147,
2596 163,147,	163,147,	0,0,	163,147,
2597 0,0,	0,0,	168,0,	0,0,
2598 0,0,	163,147,	0,0,	163,147,
2599 163,147,	0,0,	163,147,	0,0,
2600 163,147,	163,147,	163,147,	0,0,
2601 0,0,	0,0,	0,0,	0,0,
2602 163,147,	0,0,	163,147,	0,0,
2603 0,0,	163,147,	168,168,	0,0,
2604 163,147,	168,168,	0,0,	168,159,
2605 0,0,	163,147,	0,0,	0,0,
2606 0,0,	163,147,	168,168,	168,168,
2607 168,168,	163,163,	168,168,	0,0,
2608 163,147,	163,147,	0,0,	0,0,
2609 168,168,	0,0,	168,168,	0,0,
2610 0,0,	168,168,	0,0,	168,168,
2611 168,168,	168,168,	170,170,	0,0,
2612 0,0,	0,0,	0,0,	168,168,
2613 0,0,	168,168,	170,147,	0,0,
2614 168,168,	0,0,	0,0,	168,168,
2615 0,0,	0,0,	0,0,	0,0,
2616 168,168,	0,0,	0,0,	0,0,
2617 168,168,	0,0,	0,0,	0,0,
2618 168,172,	0,0,	0,0,	168,168,
2619 168,168,	0,0,	170,147,	170,175,
2620 0,0,	170,147,	170,170,	0,0,
2621 170,170,	0,0,	0,0,	0,0,
2622 0,0,	172,168,	0,0,	170,170,
2623 170,170,	170,170,	0,0,	170,170,
2624 0,0,	0,0,	172,0,	0,0,
2625 0,0,	170,170,	0,0,	170,170,
2626 170,147,	0,0,	170,170,	0,0,
2627 170,170,	170,170,	170,170,	0,0,
2628 0,0,	0,0,	0,0,	0,0,
2629 170,170,	0,0,	170,170,	0,0,
2630 0,0,	170,170,	172,103,	0,0,
2631 170,170,	172,168,	0,0,	172,159,
2632 0,0,	170,170,	0,0,	0,0,
2633 0,0,	170,170,	172,168,	172,168,
2634 172,168,	170,176,	172,168,	0,0,
2635 170,170,	170,170,	0,0,	0,0,
2636 172,168,	0,0,	172,168,	0,0,
2637 0,0,	172,168,	0,0,	172,168,
2638 172,168,	172,168,	173,173,	0,0,
2639 0,0,	0,0,	0,0,	172,168,
2640 0,0,	172,168,	0,0,	173,0,
2641 172,168,	0,0,	0,0,	172,168,
2642 0,0,	0,0,	0,0,	0,0,
2643 172,168,	0,0,	0,0,	0,0,
2644 172,168,	0,0,	0,0,	0,0,
2645 172,168,	0,0,	0,0,	172,168,
2646 172,168,	0,0,	0,0,	173,173,
2647 0,0,	0,0,	173,173,	0,0,
2648 173,173,	0,0,	0,0,	0,0,
2649 0,0,	0,0,	0,0,	173,173,
2650 173,173,	173,173,	0,0,	173,173,
2651 0,0,	0,0,	0,0,	0,0,
2652 0,0,	173,173,	0,0,	173,173,
2653 0,0,	0,0,	173,173,	0,0,
2654 173,173,	173,173,	173,173,	175,175,
2655 0,0,	0,0,	0,0,	0,0,
2656 173,173,	0,0,	173,173,	175,175,
2657 0,0,	173,173,	0,0,	0,0,
2658 173,173,	0,0,	0,0,	0,0,
2659 0,0,	173,173,	0,0,	0,0,
2660 0,0,	173,173,	0,0,	0,0,
2661 0,0,	173,177,	0,0,	0,0,
2662 173,173,	173,173,	0,0,	175,175,
2663 175,170,	0,0,	175,175,	175,175,
2664 0,0,	175,178,	0,0,	0,0,
2665 0,0,	0,0,	0,0,	0,0,
2666 175,175,	175,175,	175,175,	0,0,
2667 175,175,	0,0,	0,0,	0,0,
2668 0,0,	0,0,	175,175,	0,0,
2669 175,175,	175,175,	0,0,	175,175,
2670 0,0,	175,175,	175,175,	175,175,
2671 176,170,	0,0,	0,0,	0,0,
2672 0,0,	175,175,	0,0,	175,175,
2673 176,147,	0,0,	175,175,	0,0,
2674 0,0,	175,175,	0,0,	0,0,
2675 0,0,	0,0,	175,175,	0,0,
2676 0,0,	0,0,	175,175,	0,0,
2677 0,0,	0,0,	175,179,	0,0,
2678 0,0,	175,175,	175,175,	0,0,
2679 176,147,	176,175,	0,0,	176,147,
2680 176,170,	0,0,	176,170,	0,0,
2681 0,0,	0,0,	0,0,	177,173,
2682 0,0,	176,170,	176,170,	176,170,
2683 0,0,	176,170,	0,0,	0,0,
2684 177,0,	0,0,	0,0,	176,170,
2685 0,0,	176,170,	176,147,	0,0,
2686 176,170,	0,0,	176,170,	176,170,
2687 176,170,	0,0,	0,0,	0,0,
2688 0,0,	0,0,	176,170,	0,0,
2689 176,170,	0,0,	0,0,	176,170,
2690 177,159,	0,0,	176,170,	177,173,
2691 0,0,	177,173,	0,0,	176,170,
2692 0,0,	0,0,	0,0,	176,170,
2693 177,173,	177,173,	177,173,	176,176,
2694 177,173,	0,0,	176,170,	176,170,
2695 0,0,	0,0,	177,173,	0,0,
2696 177,173,	0,0,	0,0,	177,173,
2697 0,0,	177,173,	177,173,	177,173,
2698 178,178,	0,0,	0,0,	0,0,
2699 0,0,	177,173,	0,0,	177,173,
2700 178,146,	0,0,	177,173,	0,0,
2701 0,0,	177,173,	0,0,	0,0,
2702 0,0,	0,0,	177,173,	0,0,
2703 0,0,	0,0,	177,173,	0,0,
2704 0,0,	0,0,	177,180,	0,0,
2705 0,0,	177,173,	177,173,	0,0,
2706 178,146,	178,178,	0,0,	178,146,
2707 178,178,	0,0,	178,175,	0,0,
2708 0,0,	0,0,	0,0,	0,0,
2709 0,0,	178,178,	178,178,	178,178,
2710 0,0,	178,178,	0,0,	0,0,
2711 0,0,	0,0,	0,0,	178,178,
2712 0,0,	178,178,	178,146,	0,0,
2713 178,178,	0,0,	178,178,	178,178,
2714 178,178,	179,175,	0,0,	0,0,
2715 0,0,	0,0,	178,178,	0,0,
2716 178,178,	179,175,	0,0,	178,178,
2717 0,0,	0,0,	178,178,	0,0,
2718 0,0,	0,0,	0,0,	178,178,
2719 0,0,	0,0,	0,0,	178,178,
2720 0,0,	0,0,	0,0,	178,181,
2721 0,0,	0,0,	178,178,	178,178,
2722 0,0,	179,175,	179,175,	0,0,
2723 179,175,	179,175,	0,0,	179,182,
2724 0,0,	0,0,	0,0,	0,0,
2725 180,173,	0,0,	179,175,	179,175,
2726 179,175,	0,0,	179,175,	0,0,
2727 0,0,	180,0,	0,0,	0,0,
2728 179,175,	0,0,	179,175,	179,175,
2729 0,0,	179,175,	0,0,	179,175,
2730 179,175,	179,175,	0,0,	0,0,
2731 0,0,	0,0,	0,0,	179,175,
2732 0,0,	179,175,	0,0,	0,0,
2733 179,175,	180,173,	0,0,	179,175,
2734 180,173,	0,0,	180,173,	0,0,
2735 179,175,	0,0,	0,0,	0,0,
2736 179,175,	180,173,	180,173,	180,173,
2737 179,183,	180,173,	0,0,	179,175,
2738 179,175,	0,0,	0,0,	180,173,
2739 0,0,	180,173,	0,0,	0,0,
2740 180,173,	181,178,	180,173,	180,173,
2741 180,173,	0,0,	0,0,	0,0,
2742 0,0,	181,146,	180,173,	0,0,
2743 180,173,	0,0,	0,0,	180,173,
2744 0,0,	0,0,	180,173,	0,0,
2745 0,0,	0,0,	0,0,	180,173,
2746 0,0,	0,0,	0,0,	180,173,
2747 0,0,	0,0,	0,0,	180,177,
2748 0,0,	181,146,	180,173,	180,173,
2749 181,146,	181,178,	0,0,	181,175,
2750 0,0,	0,0,	0,0,	0,0,
2751 0,0,	0,0,	181,178,	181,178,
2752 181,178,	0,0,	181,178,	0,0,
2753 0,0,	0,0,	0,0,	0,0,
2754 181,178,	0,0,	181,178,	181,146,
2755 0,0,	181,178,	0,0,	181,178,
2756 181,178,	181,178,	182,182,	0,0,
2757 0,0,	0,0,	0,0,	181,178,
2758 0,0,	181,178,	182,175,	0,0,
2759 181,178,	0,0,	0,0,	181,178,
2760 0,0,	0,0,	0,0,	0,0,
2761 181,178,	0,0,	0,0,	0,0,
2762 181,178,	0,0,	0,0,	0,0,
2763 181,178,	0,0,	0,0,	181,178,
2764 181,178,	0,0,	182,175,	182,182,
2765 0,0,	182,175,	182,182,	0,0,
2766 182,182,	0,0,	0,0,	0,0,
2767 0,0,	0,0,	0,0,	182,182,
2768 182,182,	182,182,	0,0,	182,182,
2769 0,0,	0,0,	0,0,	0,0,
2770 0,0,	182,182,	0,0,	182,182,
2771 182,175,	0,0,	182,182,	0,0,
2772 182,182,	182,182,	182,182,	183,175,
2773 0,0,	0,0,	0,0,	0,0,
2774 182,182,	0,0,	182,182,	183,175,
2775 0,0,	182,182,	0,0,	0,0,
2776 182,182,	0,0,	0,0,	0,0,
2777 0,0,	182,182,	0,0,	0,0,
2778 0,0,	182,182,	0,0,	0,0,
2779 0,0,	182,184,	0,0,	0,0,
2780 182,182,	182,182,	0,0,	183,175,
2781 183,170,	0,0,	183,175,	183,175,
2782 0,0,	183,182,	0,0,	0,0,
2783 0,0,	0,0,	0,0,	0,0,
2784 183,175,	183,175,	183,175,	0,0,
2785 183,175,	0,0,	0,0,	0,0,
2786 0,0,	0,0,	183,175,	0,0,
2787 183,175,	183,175,	0,0,	183,175,
2788 0,0,	183,175,	183,175,	183,175,
2789 184,182,	0,0,	0,0,	0,0,
2790 0,0,	183,175,	0,0,	183,175,
2791 184,175,	0,0,	183,175,	0,0,
2792 0,0,	183,175,	0,0,	0,0,
2793 0,0,	0,0,	183,175,	0,0,
2794 0,0,	0,0,	183,175,	0,0,
2795 0,0,	0,0,	183,179,	0,0,
2796 0,0,	183,175,	183,175,	0,0,
2797 184,175,	184,175,	0,0,	184,175,
2798 184,182,	0,0,	184,182,	0,0,
2799 0,0,	0,0,	0,0,	0,0,
2800 0,0,	184,182,	184,182,	184,182,
2801 0,0,	184,182,	0,0,	0,0,
2802 0,0,	0,0,	0,0,	184,182,
2803 0,0,	184,182,	184,175,	0,0,
2804 184,182,	0,0,	184,182,	184,182,
2805 184,182,	185,182,	0,0,	0,0,
2806 0,0,	0,0,	184,182,	0,0,
2807 184,182,	185,175,	0,0,	184,182,
2808 0,0,	0,0,	184,182,	0,0,
2809 0,0,	0,0,	0,0,	184,182,
2810 0,0,	0,0,	0,0,	184,182,
2811 0,0,	0,0,	0,0,	184,185,
2812 0,0,	0,0,	184,182,	184,182,
2813 0,0,	185,175,	185,182,	0,0,
2814 185,175,	185,182,	0,0,	185,182,
2815 0,0,	0,0,	0,0,	0,0,
2816 0,0,	0,0,	185,182,	185,182,
2817 185,182,	0,0,	185,182,	0,0,
2818 0,0,	0,0,	0,0,	0,0,
2819 185,182,	0,0,	185,182,	185,175,
2820 0,0,	185,182,	0,0,	185,182,
2821 185,182,	185,182,	0,0,	0,0,
2822 0,0,	0,0,	0,0,	185,182,
2823 0,0,	185,182,	0,0,	0,0,
2824 185,182,	0,0,	0,0,	185,182,
2825 0,0,	0,0,	0,0,	0,0,
2826 185,182,	0,0,	0,0,	0,0,
2827 185,182,	0,0,	0,0,	0,0,
2828 185,184,	0,0,	0,0,	185,182,
2829 185,182,	0,0,	0,0,	0,0,
2830 0,0};
2831 struct yysvf yysvec[] = {
2832 0,	0,	0,
2833 yycrank+-1,	0,		yyvstop+1,
2834 yycrank+0,	yysvec+1,	yyvstop+3,
2835 yycrank+-66,	yysvec+1,	yyvstop+5,
2836 yycrank+-131,	yysvec+1,	yyvstop+7,
2837 yycrank+-196,	0,		yyvstop+9,
2838 yycrank+-49,	yysvec+5,	yyvstop+11,
2839 yycrank+-250,	yysvec+1,	yyvstop+13,
2840 yycrank+-304,	yysvec+1,	yyvstop+15,
2841 yycrank+-369,	yysvec+1,	yyvstop+17,
2842 yycrank+-434,	yysvec+1,	yyvstop+19,
2843 yycrank+-475,	yysvec+1,	yyvstop+21,
2844 yycrank+-542,	yysvec+1,	yyvstop+23,
2845 yycrank+0,	0,		yyvstop+25,
2846 yycrank+0,	0,		yyvstop+27,
2847 yycrank+0,	0,		yyvstop+30,
2848 yycrank+-613,	0,		yyvstop+32,
2849 yycrank+0,	0,		yyvstop+35,
2850 yycrank+-678,	0,		yyvstop+38,
2851 yycrank+-9,	yysvec+18,	yyvstop+41,
2852 yycrank+-743,	yysvec+16,	yyvstop+45,
2853 yycrank+8,	0,		yyvstop+49,
2854 yycrank+780,	0,		yyvstop+52,
2855 yycrank+7,	0,		yyvstop+54,
2856 yycrank+-902,	0,		yyvstop+56,
2857 yycrank+8,	0,		yyvstop+59,
2858 yycrank+953,	0,		yyvstop+61,
2859 yycrank+577,	0,		yyvstop+64,
2860 yycrank+1028,	0,		yyvstop+67,
2861 yycrank+1101,	0,		yyvstop+70,
2862 yycrank+1146,	0,		yyvstop+73,
2863 yycrank+1223,	0,		yyvstop+75,
2864 yycrank+9,	0,		yyvstop+77,
2865 yycrank+9,	0,		yyvstop+80,
2866 yycrank+1337,	0,		yyvstop+83,
2867 yycrank+0,	0,		yyvstop+86,
2868 yycrank+1305,	yysvec+26,	yyvstop+89,
2869 yycrank+0,	0,		yyvstop+93,
2870 yycrank+0,	0,		yyvstop+96,
2871 yycrank+10,	0,		yyvstop+99,
2872 yycrank+11,	0,		yyvstop+101,
2873 yycrank+865,	0,		yyvstop+104,
2874 yycrank+0,	0,		yyvstop+108,
2875 yycrank+-1425,	0,		yyvstop+111,
2876 yycrank+0,	0,		yyvstop+114,
2877 yycrank+-1494,	yysvec+16,	yyvstop+117,
2878 yycrank+13,	0,		yyvstop+120,
2879 yycrank+-1559,	0,		yyvstop+122,
2880 yycrank+-74,	yysvec+43,	yyvstop+124,
2881 yycrank+0,	0,		yyvstop+127,
2882 yycrank+0,	0,		yyvstop+130,
2883 yycrank+12,	0,		yyvstop+133,
2884 yycrank+14,	0,		yyvstop+136,
2885 yycrank+-1624,	0,		yyvstop+138,
2886 yycrank+16,	0,		yyvstop+141,
2887 yycrank+1675,	0,		yyvstop+143,
2888 yycrank+1750,	0,		yyvstop+146,
2889 yycrank+1331,	0,		yyvstop+149,
2890 yycrank+0,	0,		yyvstop+152,
2891 yycrank+1823,	0,		yyvstop+156,
2892 yycrank+15,	0,		yyvstop+158,
2893 yycrank+16,	0,		yyvstop+160,
2894 yycrank+1898,	yysvec+55,	yyvstop+162,
2895 yycrank+0,	0,		yyvstop+166,
2896 yycrank+0,	yysvec+16,	yyvstop+169,
2897 yycrank+0,	0,		yyvstop+171,
2898 yycrank+0,	0,		yyvstop+173,
2899 yycrank+-16,	yysvec+16,	0,
2900 yycrank+-20,	yysvec+18,	yyvstop+175,
2901 yycrank+-1968,	yysvec+16,	yyvstop+177,
2902 yycrank+-22,	yysvec+18,	yyvstop+180,
2903 yycrank+-2033,	yysvec+16,	yyvstop+183,
2904 yycrank+0,	0,		yyvstop+185,
2905 yycrank+0,	0,		yyvstop+187,
2906 yycrank+22,	0,		yyvstop+189,
2907 yycrank+0,	0,		yyvstop+191,
2908 yycrank+2082,	0,		0,
2909 yycrank+0,	yysvec+24,	yyvstop+193,
2910 yycrank+0,	0,		yyvstop+195,
2911 yycrank+0,	0,		yyvstop+197,
2912 yycrank+-7,	yysvec+24,	yyvstop+199,
2913 yycrank+2157,	0,		0,
2914 yycrank+0,	yysvec+26,	yyvstop+201,
2915 yycrank+0,	yysvec+34,	0,
2916 yycrank+-2279,	0,		0,
2917 yycrank+0,	0,		yyvstop+203,
2918 yycrank+0,	yysvec+29,	yyvstop+205,
2919 yycrank+38,	0,		0,
2920 yycrank+590,	0,		0,
2921 yycrank+875,	0,		0,
2922 yycrank+2328,	0,		0,
2923 yycrank+2366,	0,		0,
2924 yycrank+2443,	0,		yyvstop+207,
2925 yycrank+0,	0,		yyvstop+209,
2926 yycrank+0,	0,		yyvstop+211,
2927 yycrank+0,	0,		yyvstop+213,
2928 yycrank+2518,	0,		0,
2929 yycrank+0,	0,		yyvstop+215,
2930 yycrank+2593,	yysvec+26,	yyvstop+217,
2931 yycrank+0,	0,		yyvstop+220,
2932 yycrank+-2663,	0,		0,
2933 yycrank+0,	yysvec+41,	yyvstop+222,
2934 yycrank+-116,	yysvec+43,	yyvstop+224,
2935 yycrank+-2728,	0,		0,
2936 yycrank+-7,	yysvec+47,	0,
2937 yycrank+-2793,	yysvec+16,	yyvstop+226,
2938 yycrank+-2858,	yysvec+43,	yyvstop+228,
2939 yycrank+-2929,	0,		0,
2940 yycrank+0,	0,		yyvstop+231,
2941 yycrank+-2994,	yysvec+43,	yyvstop+233,
2942 yycrank+-13,	yysvec+47,	0,
2943 yycrank+-3065,	0,		yyvstop+235,
2944 yycrank+0,	0,		yyvstop+237,
2945 yycrank+3114,	0,		0,
2946 yycrank+0,	yysvec+53,	yyvstop+239,
2947 yycrank+0,	0,		yyvstop+241,
2948 yycrank+0,	0,		yyvstop+243,
2949 yycrank+-14,	yysvec+53,	yyvstop+245,
2950 yycrank+3189,	0,		0,
2951 yycrank+0,	yysvec+55,	yyvstop+247,
2952 yycrank+0,	yysvec+57,	yyvstop+249,
2953 yycrank+46,	0,		0,
2954 yycrank+1069,	0,		0,
2955 yycrank+1124,	0,		0,
2956 yycrank+3264,	0,		0,
2957 yycrank+3302,	0,		yyvstop+251,
2958 yycrank+0,	0,		yyvstop+253,
2959 yycrank+0,	0,		yyvstop+255,
2960 yycrank+0,	0,		yyvstop+257,
2961 yycrank+0,	0,		yyvstop+259,
2962 yycrank+3377,	yysvec+55,	yyvstop+261,
2963 yycrank+41,	0,		0,
2964 yycrank+0,	yysvec+24,	yyvstop+264,
2965 yycrank+43,	0,		0,
2966 yycrank+0,	0,		yyvstop+267,
2967 yycrank+0,	yysvec+87,	yyvstop+269,
2968 yycrank+0,	yysvec+88,	yyvstop+271,
2969 yycrank+46,	yysvec+89,	yyvstop+273,
2970 yycrank+0,	yysvec+90,	yyvstop+275,
2971 yycrank+1931,	yysvec+91,	yyvstop+277,
2972 yycrank+68,	0,		0,
2973 yycrank+0,	0,		yyvstop+279,
2974 yycrank+-107,	yysvec+103,	0,
2975 yycrank+-3447,	yysvec+47,	yyvstop+281,
2976 yycrank+-3490,	yysvec+111,	0,
2977 yycrank+0,	0,		yyvstop+283,
2978 yycrank+-3555,	yysvec+111,	0,
2979 yycrank+-3620,	yysvec+111,	0,
2980 yycrank+71,	0,		0,
2981 yycrank+0,	yysvec+53,	yyvstop+285,
2982 yycrank+72,	0,		0,
2983 yycrank+0,	yysvec+121,	yyvstop+288,
2984 yycrank+0,	yysvec+122,	yyvstop+290,
2985 yycrank+74,	yysvec+123,	yyvstop+292,
2986 yycrank+0,	yysvec+124,	yyvstop+294,
2987 yycrank+0,	0,		yyvstop+296,
2988 yycrank+0,	0,		yyvstop+298,
2989 yycrank+1136,	0,		0,
2990 yycrank+0,	0,		yyvstop+300,
2991 yycrank+-3685,	0,		0,
2992 yycrank+-3728,	yysvec+47,	yyvstop+302,
2993 yycrank+-3771,	yysvec+111,	yyvstop+304,
2994 yycrank+-3832,	yysvec+111,	0,
2995 yycrank+-3897,	yysvec+111,	0,
2996 yycrank+0,	0,		yyvstop+306,
2997 yycrank+0,	0,		yyvstop+308,
2998 yycrank+2242,	0,		0,
2999 yycrank+0,	yysvec+157,	yyvstop+310,
3000 yycrank+-3940,	yysvec+103,	yyvstop+312,
3001 yycrank+-149,	yysvec+159,	0,
3002 yycrank+-4005,	yysvec+111,	yyvstop+314,
3003 yycrank+0,	yysvec+166,	yyvstop+316,
3004 yycrank+-4048,	yysvec+103,	yyvstop+318,
3005 yycrank+-4113,	yysvec+159,	yyvstop+320,
3006 yycrank+-118,	yysvec+159,	0,
3007 yycrank+-4178,	yysvec+111,	0,
3008 yycrank+-4243,	yysvec+111,	yyvstop+322,
3009 yycrank+-4286,	yysvec+159,	yyvstop+324,
3010 yycrank+-4351,	yysvec+111,	yyvstop+326,
3011 yycrank+-4416,	yysvec+111,	0,
3012 yycrank+-4459,	yysvec+159,	yyvstop+328,
3013 yycrank+-4520,	yysvec+111,	yyvstop+330,
3014 yycrank+-4585,	yysvec+111,	yyvstop+332,
3015 yycrank+-4650,	yysvec+111,	0,
3016 yycrank+-4715,	yysvec+111,	yyvstop+334,
3017 yycrank+-4780,	yysvec+111,	yyvstop+336,
3018 0,	0,	0};
3019 struct yywork *yytop = yycrank+4876;
3020 struct yysvf *yybgin = yysvec+1;
3021 char yymatch[] = {
3022   0,   1,   1,   1,   1,   1,   1,   1,
3023   1,   9,  10,   1,   1,   1,   1,   1,
3024   1,   1,   1,   1,   1,   1,   1,   1,
3025   1,   1,   1,   1,   1,   1,   1,   1,
3026   9,  33,  34,   1,  36,  37,   1,  39,
3027   1,   1,   1,   1,   1,   1,  46,  47,
3028  48,  48,  50,  50,  50,  50,  50,  50,
3029  56,  56,  58,  59,   1,  61,   1,  63,
3030  64,  65,  65,  65,  65,  65,  65,  71,
3031  71,  73,  71,  71,  76,  76,  71,  79,
3032  71,  71,  71,  71,  84,  71,  71,  76,
3033  88,  71,  76,   1,  92,   1,  37,  95,
3034  96,  65,  65,  65,  65,  65,  65,  71,
3035  71,  73,  71,  71,  76,  71,  71,  79,
3036  71,  71,  71,  71,  84,  71,  76,  76,
3037  88,  71,  71,   1,  33,   1,   1,   1,
3038   1,   1,   1,   1,   1,   1,   1,   1,
3039   1,   1,   1,   1,   1,   1,   1,   1,
3040   1,   1,   1,   1,   1,   1,   1,   1,
3041   1,   1,   1,   1,   1,   1,   1,   1,
3042   1,   1,   1,   1,   1,   1,   1,   1,
3043   1,   1,   1,   1,   1,   1,   1,   1,
3044   1,   1,   1,   1,   1,   1,   1,   1,
3045   1,   1,   1,   1,   1,   1,   1,   1,
3046   1,   1,   1,   1,   1,   1,   1,   1,
3047   1,   1,   1,   1,   1,   1,   1,   1,
3048   1,   1,   1,   1,   1,   1,   1,   1,
3049   1,   1,   1,   1,   1,   1,   1,   1,
3050   1,   1,   1,   1,   1,   1,   1,   1,
3051   1,   1,   1,   1,   1,   1,   1,   1,
3052   1,   1,   1,   1,   1,   1,   1,   1,
3053   1,   1,   1,   1,   1,   1,   1,   1,
3054 0};
3055 char yyextra[] = {
3056 0,0,0,0,0,0,0,0,
3057 0,0,0,0,0,0,0,0,
3058 0,0,0,0,0,1,1,0,
3059 0,1,0,0,0,0,0,0,
3060 0,0,0,0,0,0,0,0,
3061 0,0,0,0,0,0,0,0,
3062 0,0,0,0,0,0,0,0,
3063 0,0,0,0,0,0,0,0,
3064 0};
3065 /*
3066  * CDDL HEADER START
3067  *
3068  * The contents of this file are subject to the terms of the
3069  * Common Development and Distribution License, Version 1.0 only
3070  * (the "License").  You may not use this file except in compliance
3071  * with the License.
3072  *
3073  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3074  * or http://www.opensolaris.org/os/licensing.
3075  * See the License for the specific language governing permissions
3076  * and limitations under the License.
3077  *
3078  * When distributing Covered Code, include this CDDL HEADER in each
3079  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3080  * If applicable, add the following below this CDDL HEADER, with the
3081  * fields enclosed by brackets "[]" replaced with your own identifying
3082  * information: Portions Copyright [yyyy] [name of copyright owner]
3083  *
3084  * CDDL HEADER END
3085  */
3086 
3087 /*	Copyright (c) 1989 AT&T	*/
3088 /*	  All Rights Reserved  	*/
3089 
3090 #pragma ident	"%Z%%M%	%I%	%E% SMI"
3091 
3092 int yylineno =1;
3093 # define YYU(x) x
3094 # define NLSTATE yyprevious=YYNEWLINE
3095 struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
3096 char yysbuf[YYLMAX];
3097 char *yysptr = yysbuf;
3098 int *yyfnd;
3099 extern struct yysvf *yyestate;
3100 int yyprevious = YYNEWLINE;
3101 #if defined(__cplusplus) || defined(__STDC__)
3102 int yylook(void)
3103 #else
3104 yylook()
3105 #endif
3106 {
3107 	register struct yysvf *yystate, **lsp;
3108 	register struct yywork *yyt;
3109 	struct yysvf *yyz;
3110 	int yych, yyfirst;
3111 	struct yywork *yyr;
3112 # ifdef LEXDEBUG
3113 	int debug;
3114 # endif
3115 	char *yylastch;
3116 	/* start off machines */
3117 # ifdef LEXDEBUG
3118 	debug = 0;
3119 # endif
3120 	yyfirst=1;
3121 	if (!yymorfg)
3122 		yylastch = yytext;
3123 	else {
3124 		yymorfg=0;
3125 		yylastch = yytext+yyleng;
3126 		}
3127 	for(;;){
3128 		lsp = yylstate;
3129 		yyestate = yystate = yybgin;
3130 		if (yyprevious==YYNEWLINE) yystate++;
3131 		for (;;){
3132 # ifdef LEXDEBUG
3133 			if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
3134 # endif
3135 			yyt = yystate->yystoff;
3136 			if(yyt == yycrank && !yyfirst){  /* may not be any transitions */
3137 				yyz = yystate->yyother;
3138 				if(yyz == 0)break;
3139 				if(yyz->yystoff == yycrank)break;
3140 				}
3141 #ifndef __cplusplus
3142 			*yylastch++ = yych = input();
3143 #else
3144 			*yylastch++ = yych = lex_input();
3145 #endif
3146 #ifdef YYISARRAY
3147 			if(yylastch > &yytext[YYLMAX]) {
3148 				fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
3149 				exit(1);
3150 			}
3151 #else
3152 			if (yylastch >= &yytext[ yytextsz ]) {
3153 				int	x = yylastch - yytext;
3154 
3155 				yytextsz += YYTEXTSZINC;
3156 				if (yytext == yy_tbuf) {
3157 				    yytext = (char *) malloc(yytextsz);
3158 				    memcpy(yytext, yy_tbuf, sizeof (yy_tbuf));
3159 				}
3160 				else
3161 				    yytext = (char *) realloc(yytext, yytextsz);
3162 				if (!yytext) {
3163 				    fprintf(yyout,
3164 					"Cannot realloc yytext\n");
3165 				    exit(1);
3166 				}
3167 				yylastch = yytext + x;
3168 			}
3169 #endif
3170 			yyfirst=0;
3171 		tryagain:
3172 # ifdef LEXDEBUG
3173 			if(debug){
3174 				fprintf(yyout,"char ");
3175 				allprint(yych);
3176 				putchar('\n');
3177 				}
3178 # endif
3179 			yyr = yyt;
3180 			if ( (uintptr_t)yyt > (uintptr_t)yycrank){
3181 				yyt = yyr + yych;
3182 				if (yyt <= yytop && yyt->verify+yysvec == yystate){
3183 					if(yyt->advance+yysvec == YYLERR)	/* error transitions */
3184 						{unput(*--yylastch);break;}
3185 					*lsp++ = yystate = yyt->advance+yysvec;
3186 					if(lsp > &yylstate[YYLMAX]) {
3187 						fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
3188 						exit(1);
3189 					}
3190 					goto contin;
3191 					}
3192 				}
3193 # ifdef YYOPTIM
3194 			else if((uintptr_t)yyt < (uintptr_t)yycrank) {	/* r < yycrank */
3195 				yyt = yyr = yycrank+(yycrank-yyt);
3196 # ifdef LEXDEBUG
3197 				if(debug)fprintf(yyout,"compressed state\n");
3198 # endif
3199 				yyt = yyt + yych;
3200 				if(yyt <= yytop && yyt->verify+yysvec == yystate){
3201 					if(yyt->advance+yysvec == YYLERR)	/* error transitions */
3202 						{unput(*--yylastch);break;}
3203 					*lsp++ = yystate = yyt->advance+yysvec;
3204 					if(lsp > &yylstate[YYLMAX]) {
3205 						fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
3206 						exit(1);
3207 					}
3208 					goto contin;
3209 					}
3210 				yyt = yyr + YYU(yymatch[yych]);
3211 # ifdef LEXDEBUG
3212 				if(debug){
3213 					fprintf(yyout,"try fall back character ");
3214 					allprint(YYU(yymatch[yych]));
3215 					putchar('\n');
3216 					}
3217 # endif
3218 				if(yyt <= yytop && yyt->verify+yysvec == yystate){
3219 					if(yyt->advance+yysvec == YYLERR)	/* error transition */
3220 						{unput(*--yylastch);break;}
3221 					*lsp++ = yystate = yyt->advance+yysvec;
3222 					if(lsp > &yylstate[YYLMAX]) {
3223 						fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
3224 						exit(1);
3225 					}
3226 					goto contin;
3227 					}
3228 				}
3229 			if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
3230 # ifdef LEXDEBUG
3231 				if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
3232 # endif
3233 				goto tryagain;
3234 				}
3235 # endif
3236 			else
3237 				{unput(*--yylastch);break;}
3238 		contin:
3239 # ifdef LEXDEBUG
3240 			if(debug){
3241 				fprintf(yyout,"state %d char ",yystate-yysvec-1);
3242 				allprint(yych);
3243 				putchar('\n');
3244 				}
3245 # endif
3246 			;
3247 			}
3248 # ifdef LEXDEBUG
3249 		if(debug){
3250 			fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
3251 			allprint(yych);
3252 			putchar('\n');
3253 			}
3254 # endif
3255 		while (lsp-- > yylstate){
3256 			*yylastch-- = 0;
3257 			if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
3258 				yyolsp = lsp;
3259 				if(yyextra[*yyfnd]){		/* must backup */
3260 					while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
3261 						lsp--;
3262 						unput(*yylastch--);
3263 						}
3264 					}
3265 				yyprevious = YYU(*yylastch);
3266 				yylsp = lsp;
3267 				yyleng = yylastch-yytext+1;
3268 				yytext[yyleng] = 0;
3269 # ifdef LEXDEBUG
3270 				if(debug){
3271 					fprintf(yyout,"\nmatch ");
3272 					sprint(yytext);
3273 					fprintf(yyout," action %d\n",*yyfnd);
3274 					}
3275 # endif
3276 				return(*yyfnd++);
3277 				}
3278 			unput(*yylastch);
3279 			}
3280 		if (yytext[0] == 0  /* && feof(yyin) */)
3281 			{
3282 			yysptr=yysbuf;
3283 			return(0);
3284 			}
3285 #ifndef __cplusplus
3286 		yyprevious = yytext[0] = input();
3287 		if (yyprevious>0)
3288 			output(yyprevious);
3289 #else
3290 		yyprevious = yytext[0] = lex_input();
3291 		if (yyprevious>0)
3292 			lex_output(yyprevious);
3293 #endif
3294 		yylastch=yytext;
3295 # ifdef LEXDEBUG
3296 		if(debug)putchar('\n');
3297 # endif
3298 		}
3299 	}
3300 #if defined(__cplusplus) || defined(__STDC__)
3301 int yyback(int *p, int m)
3302 #else
3303 yyback(p, m)
3304 	int *p;
3305 #endif
3306 {
3307 	if (p==0) return(0);
3308 	while (*p) {
3309 		if (*p++ == m)
3310 			return(1);
3311 	}
3312 	return(0);
3313 }
3314 	/* the following are only used in the lex library */
3315 #if defined(__cplusplus) || defined(__STDC__)
3316 int yyinput(void)
3317 #else
3318 yyinput()
3319 #endif
3320 {
3321 #ifndef __cplusplus
3322 	return(input());
3323 #else
3324 	return(lex_input());
3325 #endif
3326 	}
3327 #if defined(__cplusplus) || defined(__STDC__)
3328 void yyoutput(int c)
3329 #else
3330 yyoutput(c)
3331   int c;
3332 #endif
3333 {
3334 #ifndef __cplusplus
3335 	output(c);
3336 #else
3337 	lex_output(c);
3338 #endif
3339 	}
3340 #if defined(__cplusplus) || defined(__STDC__)
3341 void yyunput(int c)
3342 #else
3343 yyunput(c)
3344    int c;
3345 #endif
3346 {
3347 	unput(c);
3348 	}
3349