# 1 "yacc.m"
struct _PRIVATE { struct _PRIVATE *isa; };
typedef struct _PRIVATE *id;
struct _SHARED {
  id isa;
  id clsSuper;
  char *clsName;
  char *clsTypes;
  short clsSizInstance;
  short clsSizDict;
  struct _SLT *clsDispTable;
  long clsStatus;
  struct modDescriptor *clsMod;
  unsigned clsVersion;
  id clsCats;
  id *clsGlbl;
};
extern id  (* _imp(id,char*))();
extern id  (* _impSuper(id,char*))();
extern struct modDescriptor  *_OBJCBIND_yacc(void);
static char **selTransTbl;
struct _SLT {char *_cmd;id (*_imp)();};
struct modDescriptor {
  char *modName;
  char *modVersion;
  long modStatus;
  char *modMinSel;
  char *modMaxSel;
  id *modClsLst;
  short modSelRef;
  char **modSelTbl;
  struct methodDescriptor *modMapTbl;
};
extern struct modDescriptor yacc_modDesc;

# 2 "yacc.m"
static char yysccsid[]="@(#)yaccpar	1.9 (Berkeley) 02/21/93";
# 1 "../../util/stdarg.h"
#include <stdarg.h>

# 1 "../../util/stdlib.h"
#include <stdlib.h>

# 1 "../../util/assert.h"
#include <assert.h>

# 1 "../../util/string.h"
#include <string.h>

# 1 "../../util/stdio.h"
#include <stdio.h>

# 1 "../../util/stdio.h"
#include <stdio.h>

# 1 "../../util/stddef.h"
#include <stddef.h>

# 53 "../../include/objcrt/objcrt.h"
typedef char*SEL;
typedef char*STR;
typedef char BOOL;
typedef FILE*IOD;
typedef id SHR;
# 62 "../../include/objcrt/objcrt.h"
typedef id(*IMP)();


typedef void(*ARGIMP)(id,SEL,void*);
# 85 "../../include/objcrt/objcrt.h"
extern BOOL msgFlag;
extern FILE*msgIOD;
extern FILE*dbgIOD;
extern BOOL allocFlag;
extern BOOL dbgFlag;
extern BOOL noCacheFlag;
extern BOOL noNilRcvr;
# 98 "../../include/objcrt/objcrt.h"
SEL selUid(STR);
STR selName(SEL);
void dbg(char*fmt,...);
void prnstack(FILE*file);
void loadobjc(void*modPtr);
void unloadobjc(void*modPtr);
# 107 "../../include/objcrt/objcrt.h"
IMP fwdimp(id,SEL,IMP);
IMP fwdimpSuper(id,SEL,IMP);
void fwdmsg(id,SEL,void*,ARGIMP);
id selptrfwd(id,SEL,id,id,id,id);


id idincref(id obj);
id idassign(id*lhs,id rhs);
id iddecref(id obj);

extern id(*_fileIn)(FILE*);
extern BOOL(*_fileOut)(FILE*,id);
extern BOOL(*_storeOn)(STR,id);
extern id(*_readFrom)(STR);
void setfilein(id(*f)(FILE*));
void setfileout(BOOL(*f)(FILE*,id));

extern id(*_showOn)(id,unsigned);

void*OC_Malloc(size_t);
void*OC_MallocAtomic(size_t);
void*OC_Calloc(size_t);
void*OC_Realloc(void*,size_t);
void*OC_Free(void*data);
# 1 "../../util/string.h"
#include <string.h>

# 32 "../../include/objpak/ocstring.h"
typedef struct objstr
{
int count;
int capacity;
char*ptr;
}*
objstr_t;
# 22 "../oclib/options.h"
void defoptions(void);

extern int o_warnings;
extern int o_gnu;
extern int o_hpux;
extern int o_vms;
extern int o_refcnt;
extern int o_ppi;
extern int o_watcom;
extern int o_ibmvac;
extern int o_msdos;
extern int o_enableasm;
extern int o_nolinetags;
extern int o_buffered;
extern int o_quiet;
extern int o_outputcode;
extern int o_version;
extern int o_otb;
extern int o_llkeyw;
extern int o_comments;
extern int o_duptypedefs;
extern int o_seltranslation;
extern int o_categories;
extern int o_blocks;
extern int o_fwd;
extern int o_selptr;
extern int o_cache;
extern int o_filer;
extern int o_selfassign;
extern char*o_bind;
extern char*o_browsedir;
extern int o_refbind;
extern int o_inlinecache;
extern int o_cplus;
extern int o_gencode;
extern int o_st80;
extern int o_selfassign;
extern int o_nilrcvr;
extern int o_shareddata;
extern int o_oneperfile;
extern int o_cvars;
extern int o_warnlex;
extern int o_warnfwd;
extern int o_warnsuggest;
extern int o_warnintvar;
extern int o_warnclasstype;
extern int o_warntypeconflict;
extern int o_warnundefined;
extern int o_warnlocalnst;
extern int o_warnnotfound;
extern int o_warnmissingmethods;
extern int o_postlink;
extern char*o_infile;
extern char*o_outfile;
extern char*o_srcfilename;
extern char*o_initcall;
extern char*o_tagformat;
extern char*o_mainfun;
extern char*o_pathsep;
extern int o_debuginfo;
extern int o_checkbind;
extern int o_linemax;
extern int o_structassign;
extern id o_stepbreak;
extern int o_stepnext;
# 22 "../oclib/node.h"
extern FILE*gfile;
extern int inlineno;
extern id infilename;
extern int outlineno;
extern char*outfilename;
extern int exitstatus;
extern id loadedmodules;

void gc(char c);
void gextc(void);
void gcom(char*cm);
void gvarlist(id c,char*sp,char*iz);
void gcommalist(id c);
void gs(char*str);
void gf(char*fmt,...);
void gl(int no,char*fn);
void g_otbvars(void);
void gstderr(void);
void gnormal(void);
char*browsepath(char*filename);

void warn(char*fmt,...);
void warnat(id sym,char*fmt,...);
void fatal(char*fmt,...);
void fatalat(id sym,char*fmt,...);
# 23 "../oclib/util.h"
extern FILE*yyin;
extern int yyparse();

FILE*openfile(STR name,STR modfs);
FILE*reopenfile(STR name,STR modfs,FILE*of);

extern int okblock;

id mkcppdirect(char*s);
id mkexprstmt(id expr);
id mklabeledstmt(id label,id stmt);
id mkcasestmt(id keyw,id expr,id stmt);
id mkdefaultstmt(id keyw,id stmt);
id mkifstmt(id keyw,id expr,id stmt);
id mkifelsestmt(id keyw,id expr,id stmt,id ekeyw,id estmt);
id mkswitchstmt(id keyw,id expr,id stmt);
id mkwhilestmt(id keyw,id expr,id stmt);
id mkdostmt(id keyw,id stmt,id wkeyw,id expr);
id mkforstmt(id keyw,id a,id b,id c,id stmt);
id mkgotostmt(id keyw,id label);
id mkcontinuestmt(id keyw);
id mkbreakstmt(id keyw);
id mkreturnstmt(id keyw,id expr);
id mkcastexpr(id a,id b);
id mkcondexpr(id a,id b,id c);
id mkunaryexpr(STR op,id a);
id mksizeof(id a);
id mktypeof(id kw,id a);
id mkaddressof(id a);
id mkdereference(id a);
id mkbinexpr(id a,STR op,id b);
id mkcommaexpr(id a,id b);
id mkrelexpr(id a,STR op,id b);
id mkassignexpr(id a,STR op,id b);
id mkfuncall(id funname,id args);
id mkbuiltincall(id funname,id args);
id mkfunbody(id datadefs,id compound);
void declarefun(id specs,id decl);
void declaremeth(BOOL factory,id decl);
id mkfundef(id specs,id decl,id body);
id mkmethdef(BOOL factory,id decl,id body);
id mkmesgexpr(id receiver,id args);
id mkdecl(id ident);
id mkprecdecl(id tquals,id decl);
id mkarraydecl(id lhs,id ix);
id mkfundecl(id lhs,id args);
id mkprefixdecl(id lhs,id rhs);
id mkpostfixdecl(id lhs,id rhs);
id mkpointer(id specs,id pointer);
id mkbitfielddecl(id decl,id expr);
id mkstardecl(id pointer,id decl);
id mkasmop(id string,id expr);
id mkasmstmt(id keyw,id tqual,id expr,id asmop1,id asmop2,id clobbers);
id mkcompstmt(id lb,id datadefs,id stmtlist,id subblock,id rb);
id mklist(id c,id s);
id mklist2(id c,id s,id t);
id atdefsaddall(id c,id n);
id mkblockexpr(id lb,id parms,id datadefs,id stmts,id expr,id rb);
id mkclassdef(id keyw,id name,id sname,id ivars,id cvars);
id mkdatadef(id datadef,id specs,id decl,id initializer);
id mkencodeexpr(id name);
id mkenumspec(id keyw,id name,id lb,id list,id rb);
id mkenumerator(id name,id value);
id mkgnuattrib(id anyword,id exprlist);
id mkgnuattribdecl(id keyw,id list);
id mklistexpr(id lb,id x,id rb);
id mktypename(id specs,id decl);
id mkcomponentdef(id cdef,id specs,id decl);
id mkstructspec(id keyw,id name,id lb,id defs,id rb);
id mkkeywarg(id sel,id arg);
id mkkeywdecl(id sel,id cast,id arg);
id mkmethproto(id cast,id usel,id ksel,BOOL varargs);
id mkidentexpr(id name);
id mkconstexpr(id name,id schain);
id mkprecexpr(id expr);
id mkbracedgroup(id expr);
id mkarrowexpr(id array,id ix);
id mkdotexpr(id array,id ix);
id mkindexexpr(id array,id ix);
id mkpostfixexpr(id expr,id pf);
id mkparmdef(id parmdef,id specs,id decl);
id mkparmdeflist(id idents,id parmdefs,BOOL varargs);
id mkselarg(id selarg,id usel,int ncols);
id mkselectorexpr(id expr);

void procextdef(id def);
void finclassdef(void);
void datadefokblock(id datadef,id specs,id decl);

id mkfileinmeth(id classdef,id ivarnames,id ivartypes);
id mkfileoutmeth(id classdef,id ivarnames,id ivartypes);

id mkincrefsmeth(id classdef,id ivarnames,id ivartypes);
id mkdecrefsmeth(id classdef,id ivarnames,id ivartypes);
# 86 "y.tab.c"
short yylhs[]={ -1,
1,1,1,1,1,5,5,3,3,3,
3,3,3,10,10,12,12,12,12,9,
15,15,15,16,18,18,19,19,22,19,
23,23,24,24,26,26,26,26,26,26,
26,26,26,26,26,26,26,27,27,30,
30,32,32,33,33,21,21,21,21,36,
36,36,36,36,36,38,38,38,38,38,
20,20,20,41,42,42,42,42,29,29,
43,43,43,43,43,43,48,44,49,44,
46,46,46,46,50,50,50,50,50,50,
50,51,11,11,53,53,53,53,53,54,
54,54,55,55,55,17,17,56,56,57,
57,57,57,57,57,57,57,61,62,61,
63,63,64,58,65,58,60,60,60,60,
4,25,25,25,67,67,67,67,67,35,
35,68,68,37,37,70,70,73,71,74,
71,75,75,75,75,76,76,77,77,40,
40,59,59,80,59,81,59,79,79,79,
79,79,79,82,82,84,85,83,39,39,
39,86,86,87,87,88,88,7,7,47,
47,66,66,8,8,8,8,8,78,78,
90,90,90,92,93,93,94,94,94,94,
94,94,94,94,94,94,94,94,94,94,
94,94,94,94,89,89,96,96,96,96,
96,96,2,2,2,2,52,52,45,99,
99,99,99,99,99,99,99,99,99,99,
99,99,99,99,99,99,100,100,100,95,
98,98,101,101,101,101,101,101,102,102,
69,69,69,69,103,103,103,104,104,105,
105,105,106,107,107,107,107,107,107,107,
107,107,107,107,107,107,107,107,107,107,
107,107,28,28,14,14,91,91,91,91,
0,0,31,31,13,13,13,13,13,13,
97,97,6,6,34,34,34,34,34,34,
34,34,34,34,34,34,34,72,72,72,
72
};
short yylen[]={2,
1,1,2,2,3,1,2,3,3,4,
4,2,2,1,3,1,1,1,1,4,
0,1,3,4,1,3,1,3,0,4,
1,1,1,3,2,5,5,6,5,6,
7,3,3,4,3,4,5,2,3,1,
1,1,3,1,3,1,4,6,7,3,
5,2,4,5,7,2,3,3,4,5,
1,5,4,1,2,2,1,1,1,2,
1,2,1,2,3,1,0,4,0,5,
1,2,2,3,1,3,4,4,4,2,
2,4,1,3,5,6,4,5,2,1,
2,3,1,3,1,1,3,1,3,1,
1,1,1,1,1,1,1,3,0,5,
1,2,0,3,0,4,6,8,10,12,
6,0,1,4,1,3,3,3,4,1,
3,1,3,2,3,1,2,0,4,0,
3,3,6,2,5,1,2,1,3,1,
3,3,3,0,4,0,4,4,4,6,
1,1,3,1,1,0,0,6,1,2,
3,0,1,0,1,0,1,0,1,0,
2,0,1,0,1,1,1,3,1,3,
1,3,3,1,1,3,1,1,1,1,
3,3,4,4,4,3,3,3,3,2,
1,1,1,1,1,3,1,2,2,3,
2,3,1,2,2,3,1,3,3,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,2,3,4,
1,3,5,5,4,2,2,2,0,1,
1,2,4,5,2,2,1,2,3,1,
2,3,1,2,1,3,4,3,5,7,
5,5,7,9,3,2,2,2,3,1,
1,1,1,2,1,2,1,3,3,3,
1,2,1,2,1,1,1,1,1,4,
1,2,1,2,1,2,2,2,2,2,
2,2,2,2,4,4,2,1,1,1,
1
};
short yydefred[]={0,
95,325,81,326,0,77,0,0,0,0,
31,124,0,329,0,32,0,0,0,0,
125,0,0,0,83,0,122,121,0,0,
78,133,0,328,321,120,123,126,127,0,
0,0,0,0,0,0,203,0,0,214,
215,0,0,348,351,350,266,250,251,252,
253,254,255,256,257,258,259,260,261,262,
263,264,265,0,0,0,166,0,0,349,
0,245,331,0,333,0,0,322,0,0,
93,0,82,75,0,84,0,0,76,0,
0,0,0,100,101,278,128,0,0,0,
115,0,110,0,0,287,0,0,0,0,
281,0,0,217,218,315,0,0,220,0,
0,0,0,0,0,0,0,0,0,0,
0,0,186,0,14,0,0,116,27,0,
231,0,56,0,234,0,0,0,232,0,
0,0,233,247,0,249,0,164,0,0,
0,0,0,0,167,172,0,173,0,246,
332,334,0,96,94,0,0,0,85,0,
0,89,86,0,0,131,79,0,134,0,
152,0,205,0,0,0,235,0,0,74,
317,199,0,0,0,0,107,111,0,0,
0,0,282,0,286,0,288,275,0,285,
0,0,0,344,336,0,0,0,77,0,
0,0,0,0,0,0,0,0,0,0,
311,0,0,35,0,0,0,0,295,310,
0,313,293,347,340,342,343,341,338,339,
337,0,0,0,0,0,316,0,330,0,
29,0,0,0,0,0,0,0,0,0,
0,0,0,0,230,0,0,0,0,216,
16,17,19,0,18,0,33,0,0,0,
0,324,0,0,0,162,0,183,175,177,
97,0,154,0,0,0,88,136,0,66,
0,0,0,132,80,87,0,0,99,0,
0,0,239,0,0,241,98,130,0,105,
114,108,112,273,274,0,0,291,0,289,
0,0,51,52,50,0,0,0,267,0,
0,0,0,0,312,0,0,0,0,0,
307,306,308,0,0,48,42,0,0,43,
0,314,45,0,294,221,0,222,0,15,
117,28,0,0,0,0,0,0,248,0,
0,0,0,0,318,320,319,228,229,226,
227,118,0,0,0,0,0,0,0,0,
0,0,6,0,0,0,0,0,0,0,
12,13,4,0,0,155,61,0,0,0,
145,201,90,67,68,0,20,240,242,153,
208,236,0,0,106,283,0,292,0,0,
22,137,0,346,345,268,270,0,102,296,
0,0,0,0,0,0,298,309,305,49,
0,0,0,44,46,0,0,57,0,30,
73,0,225,0,224,223,0,34,141,165,
0,8,7,9,5,0,0,0,0,0,
0,0,150,69,0,0,284,0,0,0,
0,53,269,0,0,0,0,0,297,36,
37,0,39,0,47,0,160,0,156,0,
0,72,119,144,180,11,10,163,65,146,
147,0,148,0,70,0,23,0,138,0,
302,0,0,301,38,40,0,0,58,0,
157,0,158,188,149,151,191,24,0,0,
0,0,0,41,59,0,0,0,0,139,
300,303,0,0,0,0,0,0,140,304
};
short yydgoto[]={22,
433,23,314,24,434,86,209,204,105,144,
145,304,83,146,470,471,331,599,148,149,
150,403,26,306,307,151,256,257,195,364,
365,366,152,153,522,27,188,259,526,154,
212,197,198,30,31,32,327,190,329,33,
155,156,34,112,113,424,35,36,37,260,
39,108,199,100,191,48,523,205,118,548,
549,76,597,580,77,78,157,158,79,177,
179,551,159,275,499,367,261,425,206,160,
161,51,52,162,163,207,171,164,80,370,
40,120,121,122,227,262,263
};
short yysindex[]={2389,
0,0,0,0, -47,0, -66,192, -193,77,
0,0, -169,0,87,0,1536,1536,746, -28,
0,2389, -25,122,0, -99,0,0,758,197,
0,0,70,0,0,0,0,0,0, -100,
58,101, -119,135,148,1173,0,171,2442,0,
0,252,182,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0, -8,864,206,0,4005,221,0,
225,0,0,746,0,74,250,0,122,70,
0,40,0,0,469,0,0,122,0,440,
263,294,2442,0,0,0,0,2389, -119,246,
0,10,0,1173,1173,0,292,1196,2340,232,
0,338,2442,0,0,0,334,2512,0,2442,
346,364,586,2442,2442,2442,2442,2442,2442,2442,
2442,1882,0,360,0,157,264,0,0, -41,
0,318,0, -52,0, -229,161,302,0, -35,
527, -24,0,0, -169,0,1187,0,864,407,
1116, -6,177,206,0,0,347,0,347,0,
0,0,437,0,0,226,816,426,0,424,
440,0,0,702,440,0,0,758,0,239,
0,864,0,458,456,460,0,139,415,0,
0,0,771,64,2442, -38,0,0,400,402,
277,497,0,2442,0,481,0,0, -9,0,
447,1949,1882,0,0,1276,864,485,0,507,
517,1835,535,546,2442,508,528,529,1601,335,
0,2442,341,0,50, -11,1393,966,0,0,
544,0,0,0,0,0,0,0,0,0,
0,350,563,564,2442,2442,0,2442,0,2442,
0,2442,2442,2269,2442,2442,2442,2442,2442,2442,
2442,2442,2442,2442,0, -79, -56,2316,2442,0,
0,0,0,583,0,406,0,570,4075,86,
2442,0,4,97,8,0,864,0,0,0,
0,509,0,909,509,2241,0,0,424,0,
572,1440,1013,0,0,0,36,139,0,376,
1225, -2,0,136,33,0,0,0,62,0,
0,0,0,0,0,598,386,0,2442,0,
239,589,0,0,0,615,619,628,0,3957,
630,1835,2442,2442,0,408,2442,2442,620,1835,
0,0,0,361,626,0,0,416,1324,0,
60,0,0,1487,0,0,2336,0,572,0,
0,0,2442,360,161,2442,75,411,0,302,
318,100,527,527,0,0,0,0,0,0,
0,0,649,652,675,12,2442,1187,686,472,
206,4196,0,690,99,641,97,8,294,2442,
0,0,0,697,685,0,0,691,491,2241,
0,0,0,0,0,1060,0,0,0,0,
0,0,11,33,0,0,710,0, -16,488,
0,0,1949,0,0,0,0,695,0,0,
448,552,724,707,553,1835,0,0,0,0,
78,1741,1129,0,0,79,2241,0,4102,0,
0,2442,0,2442,0,0,569,0,0,0,
483,0,0,0,0,731,682,516,509,2442,
2442,81,0,0,1324,654,0,2442,239,239,
718,0,0,1835,1835,2442,2442,1835,0,0,
0,88,0,1788,0,96,0,4102,0,725,
689,0,0,0,0,0,0,0,0,0,
0,2146,0,1324,0,571,0,526,0,515,
0,576,727,0,0,0,98,2213,0,2442,
0,725,0,0,0,0,0,0,239,728,
1835,732,2442,0,0,572,2442,157,613,0,
0,0,755,572,239,740,1835,157,0,0
};
short yyrindex[]={0,
0,0,0,0,859,0,0,0,769,0,
0,0,0,0,0,0,0,0, -5,0,
0,0,0,0,0,0,0,0,0,0,
0,0,2448,0,0,0,0,0,0,1589,
2520,373,0,851,1895,687,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,32,0,48,692,0,
696,0,0,153,0,0,0,0,0,2569,
0,21,0,0,0,0,2599,0,0,0,
0,777,717,0,0,0,0,0,0,176,
0,0,0,687,687,0,0,699,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,761,0,0,0,0,0,0,0,
0,0,0,3484,0,2715,0,0,0,2972,
0,3576,0,3931,0,3416,3877,3819,0,3164,
3005,2874,0,0,0,0,614,0,0,0,
623,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,385,0,392,
0,0,0,761,0,0,0,0,0,0,
0,0,0,0,781,785,0,639,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,414,0,0,0,0,
0,788,0,0,0,0,0,2834,0,0,
0,761,0,0,0,0,0,0,0,0,
0,501,0,0,772,0,761,761,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,792,0,0,
0,0,0,648,0,0,0,0,0,0,
717,0,650,669,0,0,0,0,0,0,
0,493,0,0,0,0,0,0,392,0,
90,761,761,0,0,0,0,674,0,0,
0,0,0,650,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
532,0,0,0,0,793,0,0,0,0,
0,761,0,0,0,0,761,0,0,761,
0,0,0,0,0,0,0,0,761,0,
772,0,0,761,0,0,0,0,4157,0,
0,0,0,3513,3904,0,0,3445,0,3848,
3766,3323,3043,3131,0,0,0,0,0,0,
0,0,0,794,0,0,0,614,0,0,
95,108,0,0,0,0,676,0,777,717,
0,0,0,0,540,0,0,2834,0,0,
0,0,0,0,0,761,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,761,0,0,0,0,
772,761,761,0,0,772,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0, -7,0,0,0,0,532,
0,0,0,761,761,0,761,761,0,0,
0,772,0,761,0,0,0,745,0,747,
0,0,0,0,0,0,0,0,0,0,
0,0,0,19,0,0,0,0,0,655,
0,0,0,0,0,0,772,0,0,0,
0,0,0,0,0,0,0,0,0,0,
761,0,808,0,0,4049,0,680,0,0,
0,0,0,4129,0,0,761,681,0,0
};
short yygindex[]={748, -
165, -1, -244,39,0, -250, -292,433, -285,591,
599,0,1, -187,344,348, -49,0,141, -94,
230,0,0,0,450,0,0, -177, -129,409,
439,0,592,751,391,0, -280,430,319,0,
241,3,358,0,0,17,561,0,0, -18,
0,609,0,789, -57,470,68,0,0,389,
0,0,709,0,0,0, -299,0,715,0,
355, -76,0,0, -71,595,622,621,888,0,
0,0,0,0,0,0, -351,0,0,618,
169,760,0,0,0,602,51,625,0,0,
0,354, -90,0,719,15,0
};

short yytable[]={147,
25,174,28,258,90,312,175,290,210,291,
284,20,337,19,20,298,332,82,436,281,
62,297,25,528,28,484,452,223,442,96,
20,169,19,317,243,243,87,342,243,19,
91,445,343,310,447,97,388,310,224,19,
342,194,19,216,218,278,43,285,286,435,
62,89,62,62,333,62,299,95,437,84,
47,104,342,231,19,41,457,194,106,62,
394,62,180,255,181,243,352,50,311,88,
181,463,272,278,311,189,119,186,311,437,
25,311,183,278,506,185,182,349,25,102,
28,91,389,20,192,19,49,189,278,181,
210,278,278,311,562,310,53,19,104,210,
195,278,502,25,217,226,439,110,310,578,
19,278,290,190,291,62,111,517,195,443,
210,442,208,178,181,456,218,92,353,369,
103,20,187,19,119,119,179,305,119,313,
182,181,458,469,387,342,311,418,342,443,
19,419,107,272,494,573,465,440,350,311,
42,25,244,244,25,25,244,335,96,384,
420,15,540,545,421,563,344,391,181,315,
123,492,575,25,336,28,210,178,110,113,
579,167,594,109,346,399,311,111,1,311,
179,1,431,223,407,85,95,119,559,283,
98,603,277,244,280,226,345,1,168,426,
316,243,338,289,1,99,376,114,25,493,
335,85,586,172,210,295,110,1,296,513,
115,392,515,15,182,111,15,62,586,176,
88,62,62,178,62,62,62,62,62,1,
184,353,15,478,277,165,243,513,515,15,
113,62,200,62,279,15,215,278,313,15,
166,501,15,313,46,544,62,62,110,62,
110,62,62,481,482,90,525,111,485,111,
1,221,211,25,15,335,344,182,181,491,
344,469,469,344,496,210,392,564,315,85,
101,438,441,315,459,174,228,29,87,235,
175,91,182,264,265,266,267,268,269,270,
271,15,363,232,119,15,345,101,1,29,
345,229,464,345,60,236,480,15,38,25,
396,208,1,278,487,1,230,276,15,2,
15,598,4,237,278,7,8,552,392,244,
38,282,109,109,109,277,109,608,401,488,
402,10,550,15,60,288,60,60,305,60,
109,109,113,313,525,200,313,15,422,14,
15,113,542,60,211,60,429,309,44,428,
200,287,45,211,244,351,25,290,413,414,
318,344,344,109,358,29,451,219,220,194,
392,582,290,315,211,441,315,321,566,183,
185,264,322,325,326,379,572,362,534,208,
278,278,63,25,577,335,38,126,339,340,
539,345,345,341,361,211,392,347,20,60,
19,211,211,170,211,211,211,211,211,211,
211,415,416,417,354,25,355,335,531,196,
596,529,63,356,63,63,357,63,359,64,
211,329,372,500,329,530,373,604,570,571,
201,63,574,63,2,202,374,4,392,329,
7,8,194,293,25,380,590,422,292,529,
29,274,21,294,377,21,10,203,392,64,
273,64,64,589,64,378,381,382,211,21,
451,385,535,538,14,278,278,386,64,468,
64,38,395,397,398,601,319,308,320,554,
430,588,504,363,278,278,592,63,139,278,
196,610,427,135,334,142,498,138,136,109,
137,187,460,109,109,211,109,451,466,109,
109,60,467,253,553,60,60,472,60,60,
60,60,60,606,142,109,605,142,473,474,
560,561,274,323,64,60,323,60,475,211,
479,368,490,109,109,371,143,486,483,237,
60,60,237,60,489,60,60,299,143,503,
1,143,299,1,299,504,299,299,286,299,
2,3,451,4,193,6,7,8,194,2,
254,140,2,299,238,505,3,238,451,3,
25,26,10,25,26,1,509,423,510,2,
512,211,4,514,139,7,8,518,13,135,
14,142,519,138,136,299,137,521,520,63,
527,10,533,63,63,444,63,63,63,63,
63,329,329,536,329,537,555,329,329,14,
15,556,558,63,557,63,569,299,565,299,
299,584,583,329,591,593,600,19,63,63,
602,63,143,63,63,607,64,20,609,19,
64,64,329,64,64,64,64,64,202,198,
20,279,19,17,174,18,94,204,176,194,
64,206,64,280,194,207,330,140,192,21,
195,16,196,193,197,64,64,185,64,184,
64,64,238,125,126,127,2,3,194,4,
193,239,7,8,240,213,241,242,243,244,
245,246,247,248,249,250,9,128,10,129,
251,516,404,568,400,130,567,508,234,411,
131,532,587,132,13,133,252,546,141,453,
276,276,276,408,276,348,507,214,86,328,
86,324,581,432,405,81,412,410,276,276,
409,299,299,299,299,299,299,86,299,299,
299,299,299,299,300,299,299,299,299,299,
299,299,299,299,299,299,299,299,299,299,
323,276,462,0,299,0,0,360,0,299,
0,0,299,299,299,299,0,299,238,125,
126,127,2,3,0,4,193,239,7,8,
240,0,241,242,243,244,245,246,247,248,
249,250,9,128,10,129,251,0,0,0,
0,130,0,0,0,0,131,0,139,132,
13,133,252,135,141,142,2,138,136,4,
137,0,7,8,1,0,0,0,2,93,
0,4,0,0,7,8,0,1,10,0,
0,2,3,446,4,5,6,7,8,0,
10,0,0,0,0,139,14,0,0,0,
135,9,142,10,138,136,143,137,14,15,
0,0,0,0,0,0,11,12,0,13,
0,14,15,0,0,0,2,0,0,4,
0,116,7,8,0,0,0,0,194,0,
393,140,139,0,0,0,0,135,10,142,
0,138,136,143,137,0,0,276,0,117,
0,276,276,0,276,86,14,276,276,86,
86,0,86,0,2,86,86,4,0,0,
7,8,0,276,0,194,0,455,140,0,
0,86,0,0,0,0,10,0,0,0,
143,276,276,0,0,310,0,19,0,86,
86,139,0,0,14,0,135,0,142,2,
138,136,4,137,116,7,8,0,0,0,
0,0,194,0,524,140,0,0,0,0,
0,10,0,0,0,0,0,0,0,0,
0,0,222,0,0,0,311,0,0,14,
0,0,0,0,0,0,0,0,0,143,
0,0,238,125,126,127,2,3,0,4,
193,239,7,8,240,0,241,242,243,244,
245,246,247,248,249,250,9,128,10,129,
251,194,0,543,140,130,0,0,0,0,
131,0,0,132,13,133,252,0,141,238,
125,126,127,2,3,0,4,193,239,7,
8,240,0,241,242,243,244,245,246,247,
248,249,250,9,128,10,129,251,0,0,
0,0,130,0,0,0,0,131,0,0,
132,13,133,252,0,141,238,125,126,127,
2,3,0,4,193,239,7,8,240,0,
241,242,243,244,245,246,247,248,249,250,
9,128,10,129,251,0,0,0,0,130,
0,0,0,0,131,0,139,132,13,133,
252,135,141,142,0,138,136,0,137,0,
0,0,0,0,0,0,2,0,0,4,
0,0,7,8,0,238,125,126,127,2,
3,0,4,193,239,7,8,240,10,241,
242,243,244,245,246,247,248,249,250,9,
128,10,129,251,143,0,14,15,130,0,
0,0,0,131,0,139,132,13,133,252,
135,141,142,2,138,136,4,137,116,7,
8,0,0,301,0,0,194,2,302,140,
303,0,0,7,8,10,2,0,0,4,
0,116,7,8,0,0,117,0,0,10,
0,0,139,14,0,0,0,135,10,142,
0,138,136,143,137,2,202,14,4,222,
0,7,8,0,0,0,14,0,0,0,
0,0,0,0,0,0,0,10,461,0,
0,0,0,0,0,194,0,390,140,139,
0,0,0,0,135,14,142,0,138,136,
143,137,54,0,0,55,56,0,0,57,
0,0,58,59,60,61,62,63,64,65,
66,67,68,69,70,71,72,73,0,0,
0,0,194,0,454,140,0,0,0,0,
0,0,0,0,0,75,0,143,0,0,
238,125,126,127,2,3,0,4,193,239,
7,8,240,74,241,242,243,244,245,246,
247,248,249,250,9,128,10,129,251,194,
0,495,140,130,0,0,0,0,131,0,
0,132,13,133,252,0,141,0,327,327,
327,0,327,139,0,0,0,0,135,0,
142,0,138,136,0,137,327,327,0,238,
125,126,127,0,0,0,0,0,375,383,
0,240,0,241,242,243,244,245,246,247,
248,249,250,9,128,0,129,251,0,327,
0,0,130,0,0,0,0,131,0,0,
132,143,133,134,0,141,238,125,126,127,
0,0,0,0,0,375,0,0,240,0,
241,242,243,244,245,246,247,248,249,250,
9,128,0,129,251,0,140,0,0,130,
0,0,0,0,131,0,0,132,0,133,
134,0,141,238,125,126,127,0,0,0,
0,0,375,0,0,240,0,241,242,243,
244,245,246,247,248,249,250,9,128,0,
129,251,0,139,0,0,130,0,135,0,
142,131,138,136,132,137,133,134,0,141,
0,0,54,0,0,55,56,0,0,57,
0,0,58,59,60,61,62,63,64,65,
66,67,68,69,70,71,72,73,0,0,
139,0,0,0,0,135,0,142,0,138,
136,143,137,0,0,0,0,0,0,0,
0,0,0,0,0,327,0,0,0,327,
327,0,327,0,0,327,327,124,125,126,
127,0,0,194,0,541,140,139,0,0,
0,327,135,0,142,0,138,136,143,137,
0,0,128,0,129,0,0,0,0,327,
130,0,0,0,0,131,0,0,132,0,
133,134,0,141,0,0,0,0,0,0,
194,0,576,140,139,0,0,0,0,135,
0,142,0,138,136,143,137,0,0,0,
0,0,0,0,277,277,277,0,277,0,
0,0,0,0,0,0,0,0,0,0,
0,0,277,277,0,0,0,194,0,0,
140,0,0,0,0,0,0,0,0,0,
0,0,143,0,0,0,0,0,0,0,
0,139,0,0,0,277,135,0,142,0,
138,136,0,137,0,0,0,238,125,126,
127,0,0,0,194,0,375,140,0,240,
0,241,242,243,244,245,246,247,248,249,
250,9,128,0,129,251,0,0,0,0,
130,0,0,0,0,131,0,0,132,143,
133,134,0,141,238,125,126,127,0,0,
0,0,0,375,0,0,240,0,241,242,
243,244,245,246,247,248,249,250,9,128,
0,129,251,0,140,0,0,130,0,0,
0,0,131,0,0,132,0,133,134,0,
141,238,125,126,127,0,0,0,0,0,
375,0,0,240,0,241,242,243,244,245,
246,247,248,249,250,9,128,0,129,251,
0,0,0,0,130,0,0,0,0,131,
0,0,132,0,133,134,0,141,124,125,
126,127,2,0,0,4,0,0,7,8,
0,277,0,0,0,277,277,0,277,0,
0,277,277,128,10,129,0,0,0,0,
0,130,0,0,0,0,131,277,139,132,
0,133,252,135,141,142,0,138,136,0,
137,449,0,0,0,277,277,0,0,0,
0,0,0,0,0,124,125,126,127,2,
0,0,4,0,0,7,8,0,0,0,
0,0,0,0,0,0,0,0,0,0,
128,10,129,0,0,0,143,0,130,0,
0,0,0,131,0,139,132,0,133,252,
135,141,142,0,138,136,0,137,449,0,
0,0,0,0,0,0,0,0,450,0,
585,140,0,139,0,0,0,0,135,0,
142,0,138,136,0,137,449,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,139,0,143,0,0,135,0,142,0,
138,136,0,137,0,0,0,0,0,0,
0,0,0,0,0,0,406,0,0,0,
0,143,0,0,0,450,0,595,140,0,
0,0,0,0,0,0,0,0,139,0,
0,0,0,135,0,142,0,138,136,143,
137,0,0,450,0,0,140,0,139,0,
0,0,0,135,0,142,0,138,136,20,
137,19,0,0,0,0,0,0,0,0,
0,0,0,0,140,0,0,224,225,0,
0,0,448,125,126,127,143,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,143,128,20,129,
19,17,0,18,0,130,0,0,194,0,
131,140,0,132,0,133,134,21,141,16,
0,0,0,0,0,0,0,0,497,0,
0,140,0,0,0,0,0,0,0,448,
125,126,127,0,139,0,0,0,0,135,
0,142,0,138,136,0,137,0,91,0,
0,91,0,0,128,0,129,448,125,126,
127,0,130,0,0,91,91,131,91,0,
132,0,133,134,0,141,0,0,0,0,
0,0,128,0,129,124,125,126,127,0,
130,0,143,0,0,131,0,0,132,0,
133,134,0,141,139,0,0,0,0,135,
128,233,129,138,136,0,137,0,130,129,
0,129,129,131,129,0,132,140,133,134,
91,141,124,125,126,127,0,0,129,0,
129,0,0,0,0,0,0,0,0,0,
0,0,124,125,126,127,1,128,0,129,
2,0,143,4,0,130,7,8,0,92,
131,0,92,132,0,133,134,128,141,129,
0,0,10,0,0,130,92,92,0,92,
131,0,0,132,0,133,134,140,141,0,
14,15,87,0,0,1,0,0,0,2,
3,0,4,5,6,7,8,87,0,87,
0,0,0,0,0,0,0,0,0,9,
0,10,0,0,0,0,0,0,0,0,
0,0,0,0,11,12,0,13,0,14,
15,92,0,0,0,0,0,0,124,125,
126,127,0,0,0,0,0,0,91,91,
0,91,91,91,91,91,0,0,0,0,
0,135,0,128,0,129,0,0,0,0,
91,130,0,0,0,0,131,0,0,132,
0,133,134,0,141,0,91,0,91,0,
0,219,219,0,219,219,219,219,219,219,
219,219,0,0,0,0,0,0,124,125,
126,127,219,219,0,219,129,219,0,0,
129,129,0,129,129,129,129,129,0,0,
0,0,0,128,0,129,0,0,0,0,
129,130,129,0,0,219,131,219,219,132,
0,133,134,0,141,129,129,0,129,0,
129,129,0,0,0,0,0,0,0,92,
92,0,92,92,92,92,92,0,219,219,
0,0,0,0,0,0,0,0,0,0,
0,92,0,0,0,0,0,0,0,135,
135,0,135,135,135,135,135,92,0,92,
217,217,0,217,0,217,217,217,217,217,
217,135,0,0,0,0,0,0,0,0,
0,0,217,0,217,0,217,135,0,135,
0,0,0,0,0,0,0,0,0,0,
335,335,0,0,335,335,335,335,335,0,
335,0,0,0,217,0,0,217,0,0,
0,335,335,0,335,0,335,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,217,217,0,
0,0,0,0,0,0,335,335,0,0,
0,219,0,0,219,219,0,0,219,0,
219,219,219,219,219,219,219,219,219,219,
219,219,219,219,219,219,219,335,335,0,
219,219,219,219,219,219,219,219,317,317,
0,0,317,317,317,317,317,0,317,0,
0,0,0,0,0,0,0,0,0,317,
317,0,0,0,317,0,0,0,0,0,
0,0,211,0,0,211,0,211,211,211,
0,0,0,0,0,0,0,0,0,0,
0,0,211,211,317,317,0,211,0,0,
0,0,0,0,0,0,0,0,0,0,
212,0,0,212,0,212,212,212,0,0,
0,0,0,0,0,317,317,211,211,0,
212,212,0,0,0,212,0,0,0,0,
0,0,0,0,0,0,0,0,0,217,
217,217,217,217,217,217,217,0,211,211,
335,0,0,335,335,212,212,335,0,335,
335,335,335,335,335,335,335,335,335,335,
335,335,335,335,335,335,0,0,0,335,
335,335,335,0,335,335,212,212,213,0,
0,213,0,213,213,213,0,0,0,0,
0,0,0,0,0,0,0,0,213,213,
0,0,0,213,0,0,0,0,0,0,
0,271,0,0,271,0,0,271,0,0,
0,0,0,0,0,0,0,0,0,0,
0,271,271,213,213,0,271,0,317,0,
0,317,317,0,0,317,0,0,317,317,
317,317,317,317,317,317,317,317,317,317,
317,317,317,317,213,213,271,271,317,317,
317,211,317,317,211,211,0,0,211,0,
211,211,211,211,211,211,211,211,211,211,
211,211,211,211,211,211,211,271,271,0,
0,211,211,211,0,211,211,0,0,212,
0,0,212,212,0,0,212,0,212,212,
212,212,212,212,212,212,212,212,212,212,
212,212,212,212,212,0,0,0,0,212,
212,212,0,212,212,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
272,0,0,272,0,0,272,0,0,0,
0,0,0,0,0,0,0,0,0,0,
272,272,0,0,0,272,0,213,0,0,
213,213,0,0,213,0,213,213,213,213,
213,213,213,213,213,213,213,213,213,213,
213,213,213,0,0,272,272,213,213,213,
271,213,213,271,271,0,0,271,0,271,
271,271,271,271,271,271,271,271,271,271,
271,271,271,271,271,271,272,272,0,0,
271,271,0,103,271,271,103,0,0,103,
0,0,0,0,0,0,0,0,0,0,
0,0,0,103,103,0,0,0,103,0,
0,0,104,0,0,104,0,0,104,0,
0,0,0,0,0,0,0,0,0,0,
0,0,104,104,0,0,0,104,103,103,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,54,0,0,54,0,0,
0,0,0,0,0,0,0,104,104,103,
103,54,54,0,0,0,54,0,0,0,
0,0,0,55,0,0,55,0,0,0,
0,0,0,0,0,0,0,0,104,104,
55,55,0,0,0,55,54,54,0,272,
0,0,272,272,0,0,272,0,272,272,
272,272,272,272,272,272,272,272,272,272,
272,272,272,272,272,55,55,54,54,272,
272,0,0,272,272,0,209,0,0,209,
0,0,0,0,0,0,0,0,0,0,
0,0,0,209,209,0,55,55,209,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,209,0,
0,0,103,0,0,103,103,0,0,103,
0,103,103,103,103,103,103,103,103,103,
103,103,103,103,103,103,103,103,0,209,
209,104,0,0,104,104,103,103,104,0,
104,104,104,104,104,104,104,104,104,104,
104,104,104,104,104,104,104,0,0,0,
0,0,0,0,0,104,104,0,0,0,
54,0,0,54,54,0,0,54,0,54,
54,54,54,54,54,54,54,54,54,54,
54,54,54,54,54,54,0,0,0,55,
0,0,55,55,54,54,55,0,55,55,
55,55,55,55,55,55,55,55,55,55,
55,55,55,55,55,0,0,0,0,0,
0,0,0,55,55,0,210,0,0,210,
0,0,0,0,0,0,0,0,0,0,
0,0,0,210,210,0,0,0,210,0,
0,0,209,0,0,209,209,0,0,209,
0,209,209,209,209,209,209,209,209,209,
209,209,209,209,209,209,209,209,210,168,
0,0,168,0,0,0,209,209,0,0,
0,0,0,0,0,0,168,168,0,0,
0,168,0,0,0,0,0,0,169,210,
210,169,0,0,0,0,0,0,0,0,
0,0,0,0,0,169,169,0,0,0,
169,168,0,0,0,0,0,170,0,0,
170,0,0,0,0,0,0,0,0,0,
0,0,0,0,170,170,0,0,0,170,
169,0,0,168,171,0,0,171,0,0,
0,0,0,0,0,0,0,0,0,0,
0,171,171,0,0,0,171,0,0,170,
0,71,169,0,71,0,0,0,0,0,
0,0,0,0,0,0,0,0,71,71,
0,0,0,0,0,0,171,477,0,0,
0,170,0,0,0,0,0,0,0,0,
0,0,0,0,476,0,0,0,0,0,
0,0,210,71,0,210,210,0,171,210,
0,210,210,210,210,210,210,210,210,210,
210,210,210,210,210,210,210,210,173,0,
0,0,0,0,0,71,210,210,0,0,
0,0,74,0,0,0,0,0,0,0,
0,0,0,0,0,168,0,0,168,168,
0,0,168,0,168,168,168,168,168,168,
168,168,168,168,168,168,168,168,168,168,
168,0,0,0,169,0,161,169,169,168,
168,169,0,169,169,169,169,169,169,169,
169,169,169,169,169,169,169,169,169,169,
0,0,74,170,0,0,170,170,169,169,
170,161,170,170,170,170,170,170,170,170,
170,170,170,170,170,170,170,170,170,547,
171,0,0,171,171,0,0,171,170,171,
171,171,171,171,171,171,171,171,171,171,
171,171,171,171,171,171,159,71,0,0,
71,71,0,0,71,171,71,71,71,71,
71,71,71,71,71,71,71,71,71,71,
71,71,71,54,187,0,55,56,0,0,
57,159,0,58,59,60,61,62,63,64,
65,66,67,68,69,70,71,72,73,511,
0,0,0,0,0,0,0,0,0,0,
0,0,0,74,0,0,0,0,0,0,
0,54,0,0,55,56,0,0,57,0,
0,58,59,60,61,62,63,64,65,66,
67,68,69,70,71,72,73,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,161,0,0,161,161,
0,0,161,0,0,161,161,161,161,161,
161,161,161,161,161,161,161,161,161,161,
161,54,0,0,55,56,0,0,57,0,
0,58,59,60,61,62,63,64,65,66,
67,68,69,70,71,72,73,0,54,0,
0,55,56,0,0,57,0,0,58,59,
60,61,62,63,64,65,66,67,68,69,
70,71,72,73,0,159,0,0,159,159,
0,0,159,0,0,159,159,159,159,159,
159,159,159,159,159,159,159,159,159,159,
159,0,0,187,0,0,187,187,0,0,
187,0,0,187,187,187,187,187,187,187,
187,187,187,187,187,187,187,187,187,0,
0,0,0,0,0,0,0,0,0,0,
0,0,54,0,0,55,56,0,0,57,
0,0,58,59,60,61,62,63,64,65,
66,67,68,69,70,71,72,73
};
short yycheck[]={49,
0,78,0,133,23,171,78,43,103,45,
63,40,200,42,40,40,194,19,311,61,
0,46,22,40,22,377,326,118,314,29,
40,40,42,40,40,41,20,40,44,42,
24,322,208,40,325,29,58,40,58,42,
40,59,42,44,112,44,123,287,288,310,
40,23,42,43,194,45,91,29,313,19,
264,33,40,123,42,123,41,59,40,59,
258,61,84,133,84,91,125,257,91,22,
59,342,142,44,91,95,46,58,91,344,
100,91,86,44,93,89,59,44,108,40,
108,95,124,40,98,42,40,125,44,119,
215,44,44,91,44,40,40,42,90,224,
41,44,58,133,125,119,40,257,40,44,
42,44,43,125,45,125,266,440,59,315,
245,437,102,59,123,333,214,257,216,236,
91,40,123,42,114,115,59,167,118,171,
123,171,338,361,125,40,91,257,40,345,
42,261,125,233,125,537,125,91,125,91,
257,191,40,41,194,195,44,195,198,249,
257,302,125,125,261,125,208,257,208,171,
40,389,125,213,198,213,311,123,257,44,
125,40,125,123,208,275,91,266,257,91,
123,257,309,324,284,264,198,187,519,292,
44,593,259,91,286,229,208,257,257,299,
257,257,202,289,257,59,242,123,258,389,
258,264,562,58,359,290,257,257,293,435,
123,257,438,302,264,266,302,257,578,59,
213,261,262,59,264,265,266,267,268,257,
41,349,302,370,259,44,302,463,464,302,
125,281,40,283,41,302,61,44,310,302,
59,406,302,315,123,493,296,297,257,299,
257,301,302,373,374,344,456,266,378,266,
257,40,103,333,302,333,338,264,338,389,
342,529,530,345,394,440,332,525,310,264,
281,313,314,315,338,432,125,0,342,130,
432,345,264,134,135,136,137,138,139,140,
141,302,232,40,324,302,338,281,257,22,
342,44,344,345,0,40,372,302,0,389,
41,341,257,44,380,257,59,38,302,261,
302,589,264,40,44,267,268,502,394,257,
22,94,40,41,42,259,44,605,278,59,
280,283,499,302,40,124,42,43,428,45,
58,59,257,435,564,44,438,302,298,301,
302,266,492,59,215,61,41,41,257,44,
59,291,261,224,302,215,456,44,290,291,
284,463,464,91,224,108,326,114,115,123,
456,548,59,435,245,437,438,41,528,463,
464,252,257,58,61,245,536,41,41,439,
44,44,0,493,544,493,108,259,41,44,
486,463,464,44,58,276,492,93,40,125,
42,282,283,75,285,286,287,288,289,290,
291,292,293,294,125,525,125,525,41,100,
580,44,40,257,42,43,40,45,58,0,
311,41,58,403,44,58,40,597,534,535,
257,59,538,61,261,262,40,264,544,59,
267,268,123,37,564,58,41,427,42,44,
213,142,41,47,40,44,283,284,564,40,
142,42,43,58,45,40,59,59,359,58,
450,257,41,41,301,44,44,257,59,359,
61,213,59,41,41,591,177,169,179,41,
41,41,44,473,44,44,41,125,33,44,
191,607,40,38,195,40,397,42,43,257,
45,123,257,261,262,406,264,497,41,267,
268,257,257,58,504,261,262,59,264,265,
266,267,268,41,41,283,44,44,44,41,
520,521,233,41,125,281,44,283,41,440,
41,233,257,301,302,237,91,58,271,41,
296,297,44,299,59,301,302,33,41,41,
41,44,38,44,40,44,42,43,288,45,
261,262,562,264,265,266,267,268,123,41,
125,126,44,59,41,41,41,44,578,44,
41,41,283,44,44,257,41,298,257,261,
41,502,264,93,33,267,268,41,299,38,
301,40,58,42,43,91,45,257,58,257,
41,283,58,261,262,317,264,265,266,267,
268,261,262,40,264,59,284,267,268,301,
302,41,257,281,93,283,59,123,125,125,
126,93,58,283,270,59,59,42,296,297,
59,299,91,301,302,41,257,40,59,42,
261,262,302,264,265,266,267,268,40,93,
40,125,42,43,123,45,59,41,123,59,
281,41,283,125,123,41,125,126,41,59,
59,61,41,41,41,296,297,93,299,93,
301,302,257,258,259,260,261,262,41,264,
265,266,267,268,269,108,271,272,273,274,
275,276,277,278,279,280,281,282,283,284,
285,439,282,530,276,290,529,428,128,288,
295,473,564,298,299,300,301,497,303,329,
40,41,42,285,44,125,427,109,40,191,
42,187,548,309,283,18,289,287,58,59,
286,257,258,259,260,261,262,59,264,265,
266,267,268,269,165,271,272,273,274,275,
276,277,278,279,280,281,282,283,284,285,
125,91,341, -1,290, -1, -1,229, -1,295, -
1, -1,298,299,300,301, -1,303,257,258,
259,260,261,262, -1,264,265,266,267,268,
269, -1,271,272,273,274,275,276,277,278,
279,280,281,282,283,284,285, -1, -1, -1, -
1,290, -1, -1, -1, -1,295, -1,33,298,
299,300,301,38,303,40,261,42,43,264,
45, -1,267,268,257, -1, -1, -1,261,262, -
1,264, -1, -1,267,268, -1,257,283, -1, -
1,261,262,125,264,265,266,267,268, -1,
283, -1, -1, -1, -1,33,301, -1, -1, -1,
38,281,40,283,42,43,91,45,301,302, -
1, -1, -1, -1, -1, -1,296,297, -1,299, -
1,301,302, -1, -1, -1,261, -1, -1,264, -
1,266,267,268, -1, -1, -1, -1,123, -1,
125,126,33, -1, -1, -1, -1,38,283,40, -
1,42,43,91,45, -1, -1,257, -1,294, -
1,261,262, -1,264,257,301,267,268,261,
262, -1,264, -1,261,267,268,264, -1, -1,
267,268, -1,283, -1,123, -1,125,126, -1, -
1,283, -1, -1, -1, -1,283, -1, -1, -1,
91,301,302, -1, -1,40, -1,42, -1,301,
302,33, -1, -1,301, -1,38, -1,40,261,
42,43,264,45,266,267,268, -1, -1, -1, -
1, -1,123, -1,125,126, -1, -1, -1, -1, -
1,283, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1,294, -1, -1, -1,91, -1, -1,301, -
1, -1, -1, -1, -1, -1, -1, -1, -1,91, -
1, -1,257,258,259,260,261,262, -1,264,
265,266,267,268,269, -1,271,272,273,274,
275,276,277,278,279,280,281,282,283,284,
285,123, -1,125,126,290, -1, -1, -1, -1,
295, -1, -1,298,299,300,301, -1,303,257,
258,259,260,261,262, -1,264,265,266,267,
268,269, -1,271,272,273,274,275,276,277,
278,279,280,281,282,283,284,285, -1, -1, -
1, -1,290, -1, -1, -1, -1,295, -1, -1,
298,299,300,301, -1,303,257,258,259,260,
261,262, -1,264,265,266,267,268,269, -1,
271,272,273,274,275,276,277,278,279,280,
281,282,283,284,285, -1, -1, -1, -1,290, -
1, -1, -1, -1,295, -1,33,298,299,300,
301,38,303,40, -1,42,43, -1,45, -1, -
1, -1, -1, -1, -1, -1,261, -1, -1,264, -
1, -1,267,268, -1,257,258,259,260,261,
262, -1,264,265,266,267,268,269,283,271,
272,273,274,275,276,277,278,279,280,281,
282,283,284,285,91, -1,301,302,290, -1, -
1, -1, -1,295, -1,33,298,299,300,301,
38,303,40,261,42,43,264,45,266,267,
268, -1, -1,257, -1, -1,123,261,262,126,
264, -1, -1,267,268,283,261, -1, -1,264, -
1,266,267,268, -1, -1,294, -1, -1,283, -
1, -1,33,301, -1, -1, -1,38,283,40, -
1,42,43,91,45,261,262,301,264,294, -
1,267,268, -1, -1, -1,301, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1,283,284, -1, -
1, -1, -1, -1, -1,123, -1,125,126,33, -
1, -1, -1, -1,38,301,40, -1,42,43,
91,45,257, -1, -1,260,261, -1, -1,264, -
1, -1,267,268,269,270,271,272,273,274,
275,276,277,278,279,280,281,282, -1, -1, -
1, -1,123, -1,125,126, -1, -1, -1, -1, -
1, -1, -1, -1, -1,40, -1,91, -1, -1,
257,258,259,260,261,262, -1,264,265,266,
267,268,269,58,271,272,273,274,275,276,
277,278,279,280,281,282,283,284,285,123, -
1,125,126,290, -1, -1, -1, -1,295, -1, -
1,298,299,300,301, -1,303, -1,40,41,
42, -1,44,33, -1, -1, -1, -1,38, -1,
40, -1,42,43, -1,45,58,59, -1,257,
258,259,260, -1, -1, -1, -1, -1,266,59, -
1,269, -1,271,272,273,274,275,276,277,
278,279,280,281,282, -1,284,285, -1,91, -
1, -1,290, -1, -1, -1, -1,295, -1, -1,
298,91,300,301, -1,303,257,258,259,260, -
1, -1, -1, -1, -1,266, -1, -1,269, -1,
271,272,273,274,275,276,277,278,279,280,
281,282, -1,284,285, -1,126, -1, -1,290, -
1, -1, -1, -1,295, -1, -1,298, -1,300,
301, -1,303,257,258,259,260, -1, -1, -1, -
1, -1,266, -1, -1,269, -1,271,272,273,
274,275,276,277,278,279,280,281,282, -1,
284,285, -1,33, -1, -1,290, -1,38, -1,
40,295,42,43,298,45,300,301, -1,303, -
1, -1,257, -1, -1,260,261, -1, -1,264, -
1, -1,267,268,269,270,271,272,273,274,
275,276,277,278,279,280,281,282, -1, -1,
33, -1, -1, -1, -1,38, -1,40, -1,42,
43,91,45, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1,257, -1, -1, -1,261,
262, -1,264, -1, -1,267,268,257,258,259,
260, -1, -1,123, -1,125,126,33, -1, -1, -
1,283,38, -1,40, -1,42,43,91,45, -
1, -1,282, -1,284, -1, -1, -1, -1,301,
290, -1, -1, -1, -1,295, -1, -1,298, -1,
300,301, -1,303, -1, -1, -1, -1, -1, -1,
123, -1,125,126,33, -1, -1, -1, -1,38, -
1,40, -1,42,43,91,45, -1, -1, -1, -
1, -1, -1, -1,40,41,42, -1,44, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1,58,59, -1, -1, -1,123, -1, -1,
126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1,91, -1, -1, -1, -1, -1, -1, -1, -
1,33, -1, -1, -1,91,38, -1,40, -1,
42,43, -1,45, -1, -1, -1,257,258,259,
260, -1, -1, -1,123, -1,266,126, -1,269, -
1,271,272,273,274,275,276,277,278,279,
280,281,282, -1,284,285, -1, -1, -1, -1,
290, -1, -1, -1, -1,295, -1, -1,298,91,
300,301, -1,303,257,258,259,260, -1, -1, -
1, -1, -1,266, -1, -1,269, -1,271,272,
273,274,275,276,277,278,279,280,281,282, -
1,284,285, -1,126, -1, -1,290, -1, -1, -
1, -1,295, -1, -1,298, -1,300,301, -1,
303,257,258,259,260, -1, -1, -1, -1, -1,
266, -1, -1,269, -1,271,272,273,274,275,
276,277,278,279,280,281,282, -1,284,285, -
1, -1, -1, -1,290, -1, -1, -1, -1,295, -
1, -1,298, -1,300,301, -1,303,257,258,
259,260,261, -1, -1,264, -1, -1,267,268, -
1,257, -1, -1, -1,261,262, -1,264, -1, -
1,267,268,282,283,284, -1, -1, -1, -1, -
1,290, -1, -1, -1, -1,295,283,33,298, -
1,300,301,38,303,40, -1,42,43, -1,
45,46, -1, -1, -1,301,302, -1, -1, -1, -
1, -1, -1, -1, -1,257,258,259,260,261, -
1, -1,264, -1, -1,267,268, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
282,283,284, -1, -1, -1,91, -1,290, -1, -
1, -1, -1,295, -1,33,298, -1,300,301,
38,303,40, -1,42,43, -1,45,46, -1, -
1, -1, -1, -1, -1, -1, -1, -1,123, -1,
125,126, -1,33, -1, -1, -1, -1,38, -1,
40, -1,42,43, -1,45,46, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1,33, -1,91, -1, -1,38, -1,40, -1,
42,43, -1,45, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1,58, -1, -1, -1, -
1,91, -1, -1, -1,123, -1,125,126, -1, -
1, -1, -1, -1, -1, -1, -1, -1,33, -1, -
1, -1, -1,38, -1,40, -1,42,43,91,
45, -1, -1,123, -1, -1,126, -1,33, -1, -
1, -1, -1,38, -1,40, -1,42,43,40,
45,42, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1,126, -1, -1,58,59, -1, -
1, -1,257,258,259,260,91, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1,91,282,40,284,
42,43, -1,45, -1,290, -1, -1,123, -1,
295,126, -1,298, -1,300,301,59,303,61, -
1, -1, -1, -1, -1, -1, -1, -1,123, -1, -
1,126, -1, -1, -1, -1, -1, -1, -1,257,
258,259,260, -1,33, -1, -1, -1, -1,38, -
1,40, -1,42,43, -1,45, -1,41, -1, -
1,44, -1, -1,282, -1,284,257,258,259,
260, -1,290, -1, -1,58,59,295,61, -1,
298, -1,300,301, -1,303, -1, -1, -1, -1, -
1, -1,282, -1,284,257,258,259,260, -1,
290, -1,91, -1, -1,295, -1, -1,298, -1,
300,301, -1,303,33, -1, -1, -1, -1,38,
282,40,284,42,43, -1,45, -1,290,40, -
1,42,43,295,45, -1,298,126,300,301,
123,303,257,258,259,260, -1, -1,59, -1,
61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1,257,258,259,260,257,282, -1,284,
261, -1,91,264, -1,290,267,268, -1,41,
295, -1,44,298, -1,300,301,282,303,284, -
1, -1,283, -1, -1,290,58,59, -1,61,
295, -1, -1,298, -1,300,301,126,303, -1,
301,302,44, -1, -1,257, -1, -1, -1,261,
262, -1,264,265,266,267,268,59, -1,61, -
1, -1, -1, -1, -1, -1, -1, -1, -1,281, -
1,283, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1,296,297, -1,299, -1,301,
302,123, -1, -1, -1, -1, -1, -1,257,258,
259,260, -1, -1, -1, -1, -1, -1,261,262, -
1,264,265,266,267,268, -1, -1, -1, -1, -
1,123, -1,282, -1,284, -1, -1, -1, -1,
283,290, -1, -1, -1, -1,295, -1, -1,298, -
1,300,301, -1,303, -1,299, -1,301, -1, -
1,37,38, -1,40,41,42,43,44,45,
46,47, -1, -1, -1, -1, -1, -1,257,258,
259,260,58,59, -1,61,257,63, -1, -1,
261,262, -1,264,265,266,267,268, -1, -1, -
1, -1, -1,282, -1,284, -1, -1, -1, -1,
281,290,283, -1, -1,91,295,93,94,298, -
1,300,301, -1,303,296,297, -1,299, -1,
301,302, -1, -1, -1, -1, -1, -1, -1,261,
262, -1,264,265,266,267,268, -1,124,125, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1,283, -1, -1, -1, -1, -1, -1, -1,261,
262, -1,264,265,266,267,268,299, -1,301,
37,38, -1,40, -1,42,43,44,45,46,
47,283, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1,59, -1,61, -1,63,299, -1,301, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
37,38, -1, -1,41,42,43,44,45, -1,
47, -1, -1, -1,91, -1, -1,94, -1, -1, -
1,58,59, -1,61, -1,63, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1,124,125, -1, -
1, -1, -1, -1, -1, -1,93,94, -1, -1, -
1,257, -1, -1,260,261, -1, -1,264, -1,
266,267,268,269,270,271,272,273,274,275,
276,277,278,279,280,281,282,124,125, -1,
286,287,288,289,290,291,292,293,37,38, -
1, -1,41,42,43,44,45, -1,47, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1,58,
59, -1, -1, -1,63, -1, -1, -1, -1, -1, -
1, -1,38, -1, -1,41, -1,43,44,45, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1,58,59,93,94, -1,63, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
38, -1, -1,41, -1,43,44,45, -1, -1, -
1, -1, -1, -1, -1,124,125,93,94, -1,
58,59, -1, -1, -1,63, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1,286,
287,288,289,290,291,292,293, -1,124,125,
257, -1, -1,260,261,93,94,264, -1,266,
267,268,269,270,271,272,273,274,275,276,
277,278,279,280,281,282, -1, -1, -1,286,
287,288,289, -1,291,292,124,125,38, -1, -
1,41, -1,43,44,45, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1,58,59, -
1, -1, -1,63, -1, -1, -1, -1, -1, -1, -
1,38, -1, -1,41, -1, -1,44, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1,58,59,93,94, -1,63, -1,257, -1, -
1,260,261, -1, -1,264, -1, -1,267,268,
269,270,271,272,273,274,275,276,277,278,
279,280,281,282,124,125,93,94,287,288,
289,257,291,292,260,261, -1, -1,264, -1,
266,267,268,269,270,271,272,273,274,275,
276,277,278,279,280,281,282,124,125, -1, -
1,287,288,289, -1,291,292, -1, -1,257, -
1, -1,260,261, -1, -1,264, -1,266,267,
268,269,270,271,272,273,274,275,276,277,
278,279,280,281,282, -1, -1, -1, -1,287,
288,289, -1,291,292, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
38, -1, -1,41, -1, -1,44, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
58,59, -1, -1, -1,63, -1,257, -1, -1,
260,261, -1, -1,264, -1,266,267,268,269,
270,271,272,273,274,275,276,277,278,279,
280,281,282, -1, -1,93,94,287,288,289,
257,291,292,260,261, -1, -1,264, -1,266,
267,268,269,270,271,272,273,274,275,276,
277,278,279,280,281,282,124,125, -1, -1,
287,288, -1,38,291,292,41, -1, -1,44, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1,58,59, -1, -1, -1,63, -1, -
1, -1,38, -1, -1,41, -1, -1,44, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1,58,59, -1, -1, -1,63,93,94, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1,41, -1, -1,44, -1, -1, -
1, -1, -1, -1, -1, -1, -1,93,94,124,
125,58,59, -1, -1, -1,63, -1, -1, -1, -
1, -1, -1,41, -1, -1,44, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1,124,125,
58,59, -1, -1, -1,63,93,94, -1,257, -
1, -1,260,261, -1, -1,264, -1,266,267,
268,269,270,271,272,273,274,275,276,277,
278,279,280,281,282,93,94,124,125,287,
288, -1, -1,291,292, -1,41, -1, -1,44, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1,58,59, -1,124,125,63, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1,93, -1, -
1, -1,257, -1, -1,260,261, -1, -1,264, -
1,266,267,268,269,270,271,272,273,274,
275,276,277,278,279,280,281,282, -1,124,
125,257, -1, -1,260,261,291,292,264, -1,
266,267,268,269,270,271,272,273,274,275,
276,277,278,279,280,281,282, -1, -1, -1, -
1, -1, -1, -1, -1,291,292, -1, -1, -1,
257, -1, -1,260,261, -1, -1,264, -1,266,
267,268,269,270,271,272,273,274,275,276,
277,278,279,280,281,282, -1, -1, -1,257, -
1, -1,260,261,291,292,264, -1,266,267,
268,269,270,271,272,273,274,275,276,277,
278,279,280,281,282, -1, -1, -1, -1, -1, -
1, -1, -1,291,292, -1,41, -1, -1,44, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1,58,59, -1, -1, -1,63, -1, -
1, -1,257, -1, -1,260,261, -1, -1,264, -
1,266,267,268,269,270,271,272,273,274,
275,276,277,278,279,280,281,282,93,41, -
1, -1,44, -1, -1, -1,291,292, -1, -1, -
1, -1, -1, -1, -1, -1,58,59, -1, -1, -
1,63, -1, -1, -1, -1, -1, -1,41,124,
125,44, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1,58,59, -1, -1, -1,
63,93, -1, -1, -1, -1, -1,41, -1, -1,
44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1,58,59, -1, -1, -1,63,
93, -1, -1,125,41, -1, -1,44, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1,58,59, -1, -1, -1,63, -1, -1,93, -
1,41,125, -1,44, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1,58,59, -
1, -1, -1, -1, -1, -1,93,41, -1, -1, -
1,125, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1,58, -1, -1, -1, -1, -1, -
1, -1,257,93, -1,260,261, -1,125,264, -
1,266,267,268,269,270,271,272,273,274,
275,276,277,278,279,280,281,282,44, -1, -
1, -1, -1, -1, -1,125,291,292, -1, -1, -
1, -1,58, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1,257, -1, -1,260,261, -
1, -1,264, -1,266,267,268,269,270,271,
272,273,274,275,276,277,278,279,280,281,
282, -1, -1, -1,257, -1,58,260,261,291,
292,264, -1,266,267,268,269,270,271,272,
273,274,275,276,277,278,279,280,281,282, -
1, -1,58,257, -1, -1,260,261,291,292,
264,93,266,267,268,269,270,271,272,273,
274,275,276,277,278,279,280,281,282,58,
257, -1, -1,260,261, -1, -1,264,292,266,
267,268,269,270,271,272,273,274,275,276,
277,278,279,280,281,282,58,257, -1, -1,
260,261, -1, -1,264,292,266,267,268,269,
270,271,272,273,274,275,276,277,278,279,
280,281,282,257,58, -1,260,261, -1, -1,
264,93, -1,267,268,269,270,271,272,273,
274,275,276,277,278,279,280,281,282,44, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1,58, -1, -1, -1, -1, -1, -1, -
1,257, -1, -1,260,261, -1, -1,264, -1, -
1,267,268,269,270,271,272,273,274,275,
276,277,278,279,280,281,282, -1, -1, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1, -1, -1, -1,257, -1, -1,260,261, -
1, -1,264, -1, -1,267,268,269,270,271,
272,273,274,275,276,277,278,279,280,281,
282,257, -1, -1,260,261, -1, -1,264, -1, -
1,267,268,269,270,271,272,273,274,275,
276,277,278,279,280,281,282, -1,257, -1, -
1,260,261, -1, -1,264, -1, -1,267,268,
269,270,271,272,273,274,275,276,277,278,
279,280,281,282, -1,257, -1, -1,260,261, -
1, -1,264, -1, -1,267,268,269,270,271,
272,273,274,275,276,277,278,279,280,281,
282, -1, -1,257, -1, -1,260,261, -1, -1,
264, -1, -1,267,268,269,270,271,272,273,
274,275,276,277,278,279,280,281,282, -1, -
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -
1, -1,257, -1, -1,260,261, -1, -1,264, -
1, -1,267,268,269,270,271,272,273,274,
275,276,277,278,279,280,281,282
};
# 1671 "y.tab.c"
int yydebug;
int yynerrs;
int yyerrflag;
int yychar;
short*yyssp;
id*yyvsp;
id yyval;
id yylval;
short yyss[500];
id yyvs[500];

# 1689 "y.tab.c"
int
yyparse()
{
register int yym,yyn,yystate;
# 1705 "y.tab.c"
yynerrs=0;
yyerrflag=0;
yychar=( -1);

yyssp=yyss;
yyvsp=yyvs; *
yyssp=yystate=0;

yyloop:
if(yyn=yydefred[yystate])goto yyreduce;
if(yychar<0)
{
if((yychar=yylex())<0)yychar=0;
# 1728 "y.tab.c"
}
if((yyn=yysindex[yystate])&&(yyn+=yychar)>=0&&
yyn<=4478&&yycheck[yyn]==yychar)
{
# 1737 "y.tab.c"
if(yyssp>=yyss+500-1)
{
goto yyoverflow;
} * ++
yyssp=yystate=yytable[yyn]; * ++
yyvsp=yylval;
yychar=( -1);
if(yyerrflag>0) --yyerrflag;
goto yyloop;
}
if((yyn=yyrindex[yystate])&&(yyn+=yychar)>=0&&
yyn<=4478&&yycheck[yyn]==yychar)
{
yyn=yytable[yyn];
goto yyreduce;
}
if(yyerrflag)goto yyinrecovery;
# 1757 "y.tab.c"
yynewerror:
yyerror("syntax error");
# 1762 "y.tab.c"
yyerrlab: ++
yynerrs;
yyinrecovery:
if(yyerrflag<3)
{
yyerrflag=3;
for(;;)
{
if((yyn=yysindex[ *yyssp])&&(yyn+=256)>=0&&
yyn<=4478&&yycheck[yyn]==256)
{
# 1778 "y.tab.c"
if(yyssp>=yyss+500-1)
{
goto yyoverflow;
} * ++
yyssp=yystate=yytable[yyn]; * ++
yyvsp=yylval;
goto yyloop;
}
else
{
# 1793 "y.tab.c"
if(yyssp<=yyss)goto yyabort; --
yyssp; --
yyvsp;
}
}
}
else
{
if(yychar==0)goto yyabort;
# 1812 "y.tab.c"
yychar=( -1);
goto yyloop;
}
yyreduce:
# 1821 "y.tab.c"
yym=yylen[yyn];
yyval=yyvsp[1-yym];
switch(yyn)
{
case 1:
# 99 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 2:
# 101 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 3:
# 103 "yacc.ym"
{yyval=mkstardecl(yyvsp[ -1],yyvsp[0]);}
break;
case 4:
# 105 "yacc.ym"
{yyval=mkprefixdecl(yyvsp[ -1],yyvsp[0]);}
break;
case 5:
# 107 "yacc.ym"
{yyval=mkstardecl(yyvsp[ -2],mkprefixdecl(yyvsp[ -1],yyvsp[0]));}
break;
case 6:
# 111 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 7:
# 113 "yacc.ym"
{yyval=mkprecdecl(yyvsp[ -1],yyvsp[0]);}
break;
case 8:
# 117 "yacc.ym"
{yyval=mkprecdecl((id)0,yyvsp[ -1]);}
break;
case 9:
# 119 "yacc.ym"
{yyval=mkarraydecl((id)0,yyvsp[ -1]);}
break;
case 10:
# 121 "yacc.ym"
{yyval=mkarraydecl(yyvsp[ -3],yyvsp[ -1]);}
break;
case 11:
# 123 "yacc.ym"
{yyval=mkfundecl(yyvsp[ -3],yyvsp[ -1]);}
break;
case 12:
# 125 "yacc.ym"
{yyval=mkpostfixdecl(yyvsp[ -1],yyvsp[0]);}
break;
case 13:
# 127 "yacc.ym"
{yyval=mkpostfixdecl(yyvsp[ -1],yyvsp[0]);}
break;
case 14:
# 131 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 15:
# 133 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"&",yyvsp[0]);}
break;
case 19:
# 137 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 20:
# 141 "yacc.ym"
{yyval=mkbuiltincall(yyvsp[ -3],mklist((id)0,mkconstexpr((id)0,yyvsp[ -1])));}
break;
case 21:
# 145 "yacc.ym"
{yyval=(id)0;}
break;
case 22:
# 147 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 23:
# 149 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 24:
# 153 "yacc.ym"
{yyval=mkasmop(yyvsp[ -3],yyvsp[ -1]);}
break;
case 25:
# 157 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 26:
# 159 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 27:
# 163 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 28:
# 165 "yacc.ym"
{
id objcT0;

# 165 "yacc.ym"
yyval=mkassignexpr(yyvsp[ -2],(objcT0=yyvsp[ -1],(*(STR(*)(id,SEL))_imp(objcT0,selTransTbl[0]))(objcT0,selTransTbl[0])),yyvsp[0]);}
break;
case 29:
# 167 "yacc.ym"
{okblock=1;}
break;
case 30:
# 169 "yacc.ym"
{okblock=0;yyval=mkassignexpr(yyvsp[ -3],"=",yyvsp[0]);}
break;
case 31:
# 173 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 32:
# 175 "yacc.ym"
{yyval=(id)0;}
break;
case 33:
# 179 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 34:
# 181 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 35:
# 185 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -1],(id)0,(id)0,(id)0,(id)0,yyvsp[0]);}
break;
case 36:
# 187 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -4],yyvsp[ -3],(id)0,(id)0,yyvsp[ -1],yyvsp[0]);}
break;
case 37:
# 189 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -4],yyvsp[ -3],(id)0,yyvsp[ -1],(id)0,yyvsp[0]);}
break;
case 38:
# 191 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -5],yyvsp[ -4],(id)0,yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 39:
# 193 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -4],yyvsp[ -3],yyvsp[ -1],(id)0,(id)0,yyvsp[0]);}
break;
case 40:
# 195 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -5],yyvsp[ -4],yyvsp[ -2],yyvsp[ -1],(id)0,yyvsp[0]);}
break;
case 41:
# 197 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -6],yyvsp[ -5],yyvsp[ -3],yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 42:
# 199 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -2],(id)0,(id)0,(id)0,yyvsp[ -1],yyvsp[0]);}
break;
case 43:
# 201 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -2],(id)0,(id)0,yyvsp[ -1],(id)0,yyvsp[0]);}
break;
case 44:
# 203 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -3],(id)0,(id)0,yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 45:
# 205 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -2],(id)0,yyvsp[ -1],(id)0,(id)0,yyvsp[0]);}
break;
case 46:
# 207 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -3],(id)0,yyvsp[ -2],yyvsp[ -1],(id)0,yyvsp[0]);}
break;
case 47:
# 209 "yacc.ym"
{yyval=mkblockexpr(yyvsp[ -4],(id)0,yyvsp[ -3],yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 48:
# 213 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 49:
# 215 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 50:
# 219 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 51:
# 221 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 52:
# 225 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 53:
# 227 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 54:
# 231 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 55:
# 233 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"^",yyvsp[0]);}
break;
case 56:
# 237 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 57:
# 239 "yacc.ym"
{yyval=mkcastexpr(yyvsp[ -2],yyvsp[0]);}
break;
case 58:
# 241 "yacc.ym"
{yyval=mkcastexpr(yyvsp[ -4],mklistexpr(yyvsp[ -2],yyvsp[ -1],yyvsp[0]));}
break;
case 59:
# 243 "yacc.ym"
{yyval=mkcastexpr(yyvsp[ -5],mklistexpr(yyvsp[ -3],yyvsp[ -2],yyvsp[0]));}
break;
case 60:
# 247 "yacc.ym"
{yyval=mkclassdef(yyvsp[ -2],yyvsp[ -1],(id)0,yyvsp[0],(id)0);}
break;
case 61:
# 249 "yacc.ym"
{yyval=mkclassdef(yyvsp[ -4],yyvsp[ -3],(id)0,yyvsp[ -2],yyvsp[0]);}
break;
case 62:
# 251 "yacc.ym"
{yyval=mkclassdef(yyvsp[ -1],yyvsp[0],(id)0,(id)0,(id)0);}
break;
case 63:
# 253 "yacc.ym"
{yyval=mkclassdef(yyvsp[ -3],yyvsp[ -2],yyvsp[0],(id)0,(id)0);}
break;
case 64:
# 255 "yacc.ym"
{yyval=mkclassdef(yyvsp[ -4],yyvsp[ -3],yyvsp[ -1],yyvsp[0],(id)0);}
break;
case 65:
# 257 "yacc.ym"
{yyval=mkclassdef(yyvsp[ -6],yyvsp[ -5],yyvsp[ -3],yyvsp[ -2],yyvsp[0]);}
break;
case 66:
# 261 "yacc.ym"
{yyval=mkcompstmt(yyvsp[ -1],(id)0,(id)0,(id)0,yyvsp[0]);}
break;
case 67:
# 263 "yacc.ym"
{yyval=mkcompstmt(yyvsp[ -2],(id)0,yyvsp[ -1],(id)0,yyvsp[0]);}
break;
case 68:
# 265 "yacc.ym"
{yyval=mkcompstmt(yyvsp[ -2],yyvsp[ -1],(id)0,(id)0,yyvsp[0]);}
break;
case 69:
# 267 "yacc.ym"
{yyval=mkcompstmt(yyvsp[ -3],yyvsp[ -2],yyvsp[ -1],(id)0,yyvsp[0]);}
break;
case 70:
# 269 "yacc.ym"
{yyval=mkcompstmt(yyvsp[ -4],yyvsp[ -3],yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 71:
# 273 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 72:
# 275 "yacc.ym"
{yyval=mkcondexpr(yyvsp[ -4],yyvsp[ -2],yyvsp[0]);}
break;
case 73:
# 277 "yacc.ym"
{yyval=mkcondexpr(yyvsp[ -3],(id)0,yyvsp[0]);}
break;
case 74:
# 281 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 75:
# 285 "yacc.ym"
{yyval=mkdatadef((id)0,yyvsp[ -1],(id)0,(id)0);}
break;
case 76:
# 287 "yacc.ym"
{yyval=yyvsp[ -1];}
break;
case 77:
# 289 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 78:
# 291 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 79:
# 295 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 80:
# 297 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 81:
# 301 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 82:
# 303 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 83:
# 305 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 84:
# 307 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 85:
# 309 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[ -1]);yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 86:
# 311 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 87:
# 315 "yacc.ym"
{datadefokblock((id)0,yyvsp[ -1],yyvsp[0]);}
break;
case 88:
# 317 "yacc.ym"
{okblock=0;yyval=mkdatadef((id)0,yyvsp[ -3],yyvsp[ -2],yyvsp[0]);}
break;
case 89:
# 319 "yacc.ym"
{datadefokblock(yyvsp[ -2],(id)0,yyvsp[0]);}
break;
case 90:
# 321 "yacc.ym"
{okblock=0;yyval=mkdatadef(yyvsp[ -4],(id)0,yyvsp[ -2],yyvsp[0]);}
break;
case 91:
# 325 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 92:
# 327 "yacc.ym"
{yyval=mkstardecl(yyvsp[ -1],yyvsp[0]);}
break;
case 93:
# 329 "yacc.ym"
{yyval=mkprefixdecl(yyvsp[ -1],yyvsp[0]);}
break;
case 94:
# 331 "yacc.ym"
{yyval=mkstardecl(yyvsp[ -2],mkprefixdecl(yyvsp[ -1],yyvsp[0]));}
break;
case 95:
# 335 "yacc.ym"
{yyval=mkdecl(yyvsp[0]);}
break;
case 96:
# 337 "yacc.ym"
{yyval=mkprecdecl((id)0,yyvsp[ -1]);}
break;
case 97:
# 339 "yacc.ym"
{yyval=mkprecdecl(yyvsp[ -2],yyvsp[ -1]);}
break;
case 98:
# 341 "yacc.ym"
{yyval=mkarraydecl(yyvsp[ -3],yyvsp[ -1]);}
break;
case 99:
# 343 "yacc.ym"
{yyval=mkfundecl(yyvsp[ -3],yyvsp[ -1]);}
break;
case 100:
# 345 "yacc.ym"
{yyval=mkpostfixdecl(yyvsp[ -1],yyvsp[0]);}
break;
case 101:
# 347 "yacc.ym"
{yyval=mkpostfixdecl(yyvsp[ -1],yyvsp[0]);}
break;
case 102:
# 351 "yacc.ym"
{yyval=mkencodeexpr(yyvsp[ -1]);}
break;
case 103:
# 355 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 104:
# 357 "yacc.ym"
{
id objcT1;

# 357 "yacc.ym"
yyval=mkrelexpr(yyvsp[ -2],(objcT1=yyvsp[ -1],(*(STR(*)(id,SEL))_imp(objcT1,selTransTbl[0]))(objcT1,selTransTbl[0])),yyvsp[0]);}
break;
case 105:
# 361 "yacc.ym"
{yyval=mkenumspec(yyvsp[ -4],yyvsp[ -3],yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 106:
# 363 "yacc.ym"
{yyval=mkenumspec(yyvsp[ -5],yyvsp[ -4],yyvsp[ -3],yyvsp[ -2],yyvsp[0]);}
break;
case 107:
# 365 "yacc.ym"
{yyval=mkenumspec(yyvsp[ -3],(id)0,yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 108:
# 367 "yacc.ym"
{yyval=mkenumspec(yyvsp[ -4],(id)0,yyvsp[ -3],yyvsp[ -2],yyvsp[0]);}
break;
case 109:
# 369 "yacc.ym"
{yyval=mkenumspec(yyvsp[ -1],yyvsp[0],(id)0,(id)0,(id)0);}
break;
case 110:
# 373 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 111:
# 375 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 112:
# 377 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 113:
# 381 "yacc.ym"
{yyval=mkenumerator(yyvsp[0],(id)0);}
break;
case 114:
# 383 "yacc.ym"
{yyval=mkenumerator(yyvsp[ -2],yyvsp[0]);}
break;
case 115:
# 385 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 116:
# 389 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 117:
# 391 "yacc.ym"
{yyval=mkcommaexpr(yyvsp[ -2],yyvsp[0]);}
break;
case 118:
# 395 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 119:
# 397 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 120:
# 401 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 121:
# 403 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 122:
# 405 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 123:
# 407 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 124:
# 409 "yacc.ym"
{yyval=(id)0;finclassdef();}
break;
case 125:
# 411 "yacc.ym"
{gc(';');yyval=(id)0;}
break;
case 126:
# 413 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 127:
# 415 "yacc.ym"
{yyval=(id)0;}
break;
case 128:
# 419 "yacc.ym"
{
id objcT2,objcT3,objcT4;

# 419 "yacc.ym"
(objcT2=yyvsp[ -2],(*_imp(objcT2,selTransTbl[1]))(objcT2,selTransTbl[1]));(objcT3=yyvsp[ -1],(*_imp(objcT3,selTransTbl[1]))(objcT3,selTransTbl[1]));(objcT4=yyvsp[0],(*_imp(objcT4,selTransTbl[1]))(objcT4,selTransTbl[1]));}
break;
case 129:
# 421 "yacc.ym"
{
id objcT5,objcT6;

# 421 "yacc.ym"
(objcT5=yyvsp[ -1],(*_imp(objcT5,selTransTbl[1]))(objcT5,selTransTbl[1]));(objcT6=yyvsp[0],(*_imp(objcT6,selTransTbl[1]))(objcT6,selTransTbl[1]));}
break;
case 130:
# 423 "yacc.ym"
{
id objcT7;

# 423 "yacc.ym"
(objcT7=yyvsp[0],(*_imp(objcT7,selTransTbl[1]))(objcT7,selTransTbl[1]));}
break;
case 131:
# 428 "yacc.ym"
{yyval=mkfunbody((id)0,yyvsp[0]);}
break;
case 132:
# 430 "yacc.ym"
{yyval=mkfunbody(yyvsp[ -1],yyvsp[0]);}
break;
case 133:
# 434 "yacc.ym"
{declarefun((id)0,yyvsp[0]);}
break;
case 134:
# 436 "yacc.ym"
{yyval=mkfundef((id)0,yyvsp[ -2],yyvsp[0]);}
break;
case 135:
# 438 "yacc.ym"
{declarefun(yyvsp[ -1],yyvsp[0]);}
break;
case 136:
# 440 "yacc.ym"
{yyval=mkfundef(yyvsp[ -3],yyvsp[ -2],yyvsp[0]);}
break;
case 137:
# 446 "yacc.ym"
{yyval=mkasmstmt(yyvsp[ -5],yyvsp[ -4],yyvsp[ -2],(id)0,(id)0,(id)0);}
break;
case 138:
# 448 "yacc.ym"
{yyval=mkasmstmt(yyvsp[ -7],yyvsp[ -6],yyvsp[ -4],yyvsp[ -2],(id)0,(id)0);}
break;
case 139:
# 450 "yacc.ym"
{yyval=mkasmstmt(yyvsp[ -9],yyvsp[ -8],yyvsp[ -6],yyvsp[ -4],yyvsp[ -2],(id)0);}
break;
case 140:
# 452 "yacc.ym"
{yyval=mkasmstmt(yyvsp[ -11],yyvsp[ -10],yyvsp[ -8],yyvsp[ -6],yyvsp[ -4],yyvsp[ -2]);}
break;
case 141:
# 456 "yacc.ym"
{yyval=mkgnuattribdecl(yyvsp[ -5],yyvsp[ -2]);}
break;
case 142:
# 459 "yacc.ym"
{yyval=mkgnuattrib((id)0,(id)0);}
break;
case 143:
# 461 "yacc.ym"
{yyval=mkgnuattrib(yyvsp[0],(id)0);}
break;
case 144:
# 463 "yacc.ym"
{yyval=mkgnuattrib(yyvsp[ -3],yyvsp[ -1]);}
break;
case 145:
# 467 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 146:
# 469 "yacc.ym"
{yyval=mklabeledstmt(yyvsp[ -2],yyvsp[0]);}
break;
case 147:
# 471 "yacc.ym"
{yyval=mklabeledstmt(yyvsp[ -1],yyvsp[0]);}
break;
case 148:
# 473 "yacc.ym"
{yyval=mklistexpr(yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 149:
# 475 "yacc.ym"
{yyval=mklistexpr(yyvsp[ -3],yyvsp[ -2],yyvsp[0]);}
break;
case 150:
# 479 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 151:
# 481 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 152:
# 485 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 153:
# 487 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 154:
# 491 "yacc.ym"
{yyval=(id)0;}
break;
case 155:
# 493 "yacc.ym"
{yyval=yyvsp[ -1];}
break;
case 156:
# 497 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 157:
# 499 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 158:
# 502 "yacc.ym"
{okblock=1;}
break;
case 159:
# 503 "yacc.ym"
{okblock=0;yyval=mkkeywarg(yyvsp[ -3],yyvsp[0]);}
break;
case 160:
# 504 "yacc.ym"
{okblock=1;}
break;
case 161:
# 505 "yacc.ym"
{okblock=0;yyval=mkkeywarg((id)0,yyvsp[0]);}
break;
case 162:
# 509 "yacc.ym"
{yyval=mkkeywdecl(yyvsp[ -2],(id)0,yyvsp[0]);}
break;
case 163:
# 511 "yacc.ym"
{yyval=mkkeywdecl(yyvsp[ -5],yyvsp[ -2],yyvsp[0]);}
break;
case 164:
# 513 "yacc.ym"
{yyval=mkkeywdecl((id)0,(id)0,yyvsp[0]);}
break;
case 165:
# 515 "yacc.ym"
{yyval=mkkeywdecl((id)0,yyvsp[ -2],yyvsp[0]);}
break;
case 166:
# 519 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 167:
# 521 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 168:
# 525 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 169:
# 527 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"&&",yyvsp[0]);}
break;
case 170:
# 531 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 171:
# 533 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"||",yyvsp[0]);}
break;
case 172:
# 537 "yacc.ym"
{yyval=(id)0;declaremeth((BOOL)1,yyvsp[ -1]);}
break;
case 173:
# 539 "yacc.ym"
{yyval=(id)0;declaremeth((BOOL)0,yyvsp[ -1]);}
break;
case 174:
# 541 "yacc.ym"
{declaremeth((BOOL)1,yyvsp[0]);}
break;
case 175:
# 543 "yacc.ym"
{yyval=mkmethdef((BOOL)1,yyvsp[ -2],yyvsp[0]);}
break;
case 176:
# 545 "yacc.ym"
{declaremeth((BOOL)0,yyvsp[0]);}
break;
case 177:
# 547 "yacc.ym"
{yyval=mkmethdef((BOOL)0,yyvsp[ -2],yyvsp[0]);}
break;
case 178:
# 551 "yacc.ym"
{yyval=mkmethproto(yyvsp[ -2],yyvsp[0],(id)0,(BOOL)0);}
break;
case 179:
# 553 "yacc.ym"
{yyval=mkmethproto(yyvsp[ -2],(id)0,yyvsp[0],(BOOL)0);}
break;
case 180:
# 555 "yacc.ym"
{yyval=mkmethproto(yyvsp[ -4],(id)0,yyvsp[ -2],(BOOL)1);}
break;
case 181:
# 557 "yacc.ym"
{yyval=mkmethproto((id)0,yyvsp[0],(id)0,(BOOL)0);}
break;
case 182:
# 559 "yacc.ym"
{yyval=mkmethproto((id)0,(id)0,yyvsp[0],(BOOL)0);}
break;
case 183:
# 561 "yacc.ym"
{yyval=mkmethproto((id)0,(id)0,yyvsp[ -2],(BOOL)1);}
break;
case 184:
# 565 "yacc.ym"
{yyval=mkmethproto((id)0,yyvsp[0],(id)0,(BOOL)0);}
break;
case 185:
# 567 "yacc.ym"
{yyval=mkmethproto((id)0,(id)0,yyvsp[0],(BOOL)0);}
break;
case 186:
# 570 "yacc.ym"
{okblock=1;}
break;
case 187:
# 570 "yacc.ym"
{okblock=0;}
break;
case 188:
# 571 "yacc.ym"
{yyval=mkmesgexpr(yyvsp[ -3],yyvsp[ -1]);}
break;
case 189:
# 575 "yacc.ym"
{yyval=mkcompstmt((id)0,yyvsp[0],(id)0,(id)0,(id)0);}
break;
case 190:
# 577 "yacc.ym"
{yyval=mkcompstmt((id)0,yyvsp[ -1],yyvsp[0],(id)0,(id)0);}
break;
case 191:
# 579 "yacc.ym"
{yyval=mkcompstmt((id)0,yyvsp[ -2],yyvsp[ -1],yyvsp[0],(id)0);}
break;
case 192:
# 583 "yacc.ym"
{yyval=(id)0;}
break;
case 193:
# 585 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 194:
# 589 "yacc.ym"
{yyval=(id)0;}
break;
case 195:
# 591 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 196:
# 595 "yacc.ym"
{yyval=(id)0;}
break;
case 197:
# 597 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 198:
# 601 "yacc.ym"
{yyval=(id)0;}
break;
case 199:
# 603 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 200:
# 607 "yacc.ym"
{yyval=(id)0;}
break;
case 201:
# 609 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 202:
# 613 "yacc.ym"
{yyval=(id)0;}
break;
case 203:
# 615 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 204:
# 619 "yacc.ym"
{yyval=(id)0;}
break;
case 205:
# 621 "yacc.ym"
{yyval=mkparmdeflist((id)0,(id)0,(BOOL)1);}
break;
case 206:
# 623 "yacc.ym"
{yyval=mkparmdeflist(yyvsp[0],(id)0,(BOOL)0);}
break;
case 207:
# 625 "yacc.ym"
{yyval=mkparmdeflist((id)0,yyvsp[0],(BOOL)0);}
break;
case 208:
# 627 "yacc.ym"
{yyval=mkparmdeflist((id)0,yyvsp[ -2],(BOOL)1);}
break;
case 209:
# 631 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 210:
# 633 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"|",yyvsp[0]);}
break;
case 211:
# 637 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 212:
# 639 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"+",yyvsp[0]);}
break;
case 213:
# 641 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"-",yyvsp[0]);}
break;
case 214:
# 645 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 215:
# 649 "yacc.ym"
{yyval=(id)0;}
break;
case 216:
# 651 "yacc.ym"
{yyval=(id)0;}
break;
case 217:
# 655 "yacc.ym"
{yyval=mkidentexpr(yyvsp[0]);}
break;
case 218:
# 657 "yacc.ym"
{yyval=mkconstexpr(yyvsp[0],(id)0);}
break;
case 219:
# 659 "yacc.ym"
{yyval=mkconstexpr((id)0,yyvsp[0]);}
break;
case 220:
# 661 "yacc.ym"
{yyval=mkconstexpr(yyvsp[0],(id)0);}
break;
case 221:
# 663 "yacc.ym"
{yyval=mkprecexpr(yyvsp[ -1]);}
break;
case 222:
# 665 "yacc.ym"
{yyval=mkbracedgroup(yyvsp[ -1]);}
break;
case 223:
# 667 "yacc.ym"
{yyval=mkindexexpr(yyvsp[ -3],yyvsp[ -1]);}
break;
case 224:
# 669 "yacc.ym"
{yyval=mkfuncall(yyvsp[ -3],yyvsp[ -1]);}
break;
case 225:
# 671 "yacc.ym"
{yyval=mkpostfixexpr(yyvsp[ -3],mkprecexpr(yyvsp[ -1]));}
break;
case 226:
# 673 "yacc.ym"
{yyval=mkdotexpr(yyvsp[ -2],yyvsp[0]);}
break;
case 227:
# 675 "yacc.ym"
{yyval=mkdotexpr(yyvsp[ -2],yyvsp[0]);}
break;
case 228:
# 677 "yacc.ym"
{yyval=mkarrowexpr(yyvsp[ -2],yyvsp[0]);}
break;
case 229:
# 679 "yacc.ym"
{yyval=mkarrowexpr(yyvsp[ -2],yyvsp[0]);}
break;
case 230:
# 681 "yacc.ym"
{yyval=mkpostfixexpr(yyvsp[ -1],yyvsp[0]);}
break;
case 231:
# 683 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 232:
# 685 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 233:
# 687 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 234:
# 689 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 235:
# 693 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 236:
# 695 "yacc.ym"
{yyval=mklist(yyvsp[ -2],yyvsp[0]);}
break;
case 237:
# 699 "yacc.ym"
{yyval=mkparmdef((id)0,yyvsp[0],(id)0);}
break;
case 238:
# 701 "yacc.ym"
{yyval=mkparmdef(yyvsp[ -1],yyvsp[0],(id)0);}
break;
case 239:
# 703 "yacc.ym"
{yyval=mkparmdef((id)0,yyvsp[ -1],yyvsp[0]);}
break;
case 240:
# 705 "yacc.ym"
{yyval=mkparmdef(yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 241:
# 707 "yacc.ym"
{yyval=mkparmdef((id)0,yyvsp[ -1],yyvsp[0]);}
break;
case 242:
# 709 "yacc.ym"
{yyval=mkparmdef(yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 243:
# 713 "yacc.ym"
{yyval=mkpointer((id)0,(id)0);}
break;
case 244:
# 715 "yacc.ym"
{yyval=mkpointer(yyvsp[0],(id)0);}
break;
case 245:
# 717 "yacc.ym"
{yyval=mkpointer((id)0,yyvsp[0]);}
break;
case 246:
# 719 "yacc.ym"
{yyval=mkpointer(yyvsp[ -1],yyvsp[0]);}
break;
case 247:
# 723 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 248:
# 725 "yacc.ym"
{
id objcT8;

# 725 "yacc.ym"
yyval=mkrelexpr(yyvsp[ -2],(objcT8=yyvsp[ -1],(*(STR(*)(id,SEL))_imp(objcT8,selTransTbl[0]))(objcT8,selTransTbl[0])),yyvsp[0]);}
break;
case 249:
# 729 "yacc.ym"
{warn("ignoring @requires");}
break;
case 266:
# 736 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 267:
# 740 "yacc.ym"
{yyval=mkselarg((id)0,yyvsp[0],0);}
break;
case 268:
# 742 "yacc.ym"
{yyval=mkselarg(yyvsp[ -1],(id)0,1);}
break;
case 269:
# 744 "yacc.ym"
{yyval=mkselarg(yyvsp[ -2],yyvsp[ -1],1);}
break;
case 270:
# 748 "yacc.ym"
{yyval=mkselectorexpr(yyvsp[ -1]);}
break;
case 271:
# 752 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 272:
# 754 "yacc.ym"
{
id objcT9;

# 754 "yacc.ym"
yyval=mkbinexpr(yyvsp[ -2],(objcT9=yyvsp[ -1],(*(STR(*)(id,SEL))_imp(objcT9,selTransTbl[0]))(objcT9,selTransTbl[0])),yyvsp[0]);}
break;
case 273:
# 758 "yacc.ym"
{yyval=mkstructspec(yyvsp[ -4],yyvsp[ -3],yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 274:
# 760 "yacc.ym"
{yyval=mkstructspec(yyvsp[ -4],yyvsp[ -3],yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 275:
# 762 "yacc.ym"
{yyval=mkstructspec(yyvsp[ -3],(id)0,yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 276:
# 764 "yacc.ym"
{yyval=mkstructspec(yyvsp[ -1],yyvsp[0],(id)0,(id)0,(id)0);}
break;
case 277:
# 766 "yacc.ym"
{yyval=mkstructspec(yyvsp[ -1],yyvsp[0],(id)0,(id)0,(id)0);}
break;
case 278:
# 768 "yacc.ym"
{yyval=mkpostfixdecl(yyvsp[ -1],yyvsp[0]);}
break;
case 279:
# 772 "yacc.ym"
{yyval=mklist((id)0,(id)0);}
break;
case 280:
# 774 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 281:
# 778 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 282:
# 780 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 283:
# 782 "yacc.ym"
{yyval=atdefsaddall((id)0,yyvsp[ -1]);}
break;
case 284:
# 784 "yacc.ym"
{yyval=atdefsaddall(yyvsp[ -4],yyvsp[ -1]);}
break;
case 285:
# 788 "yacc.ym"
{yyval=yyvsp[ -1];}
break;
case 286:
# 790 "yacc.ym"
{yyval=mkcomponentdef((id)0,yyvsp[ -1],(id)0);}
break;
case 287:
# 792 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 288:
# 796 "yacc.ym"
{yyval=mkcomponentdef((id)0,yyvsp[ -1],yyvsp[0]);}
break;
case 289:
# 798 "yacc.ym"
{yyval=mkcomponentdef(yyvsp[ -2],(id)0,yyvsp[0]);}
break;
case 290:
# 802 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 291:
# 804 "yacc.ym"
{yyval=mkbitfielddecl((id)0,yyvsp[0]);}
break;
case 292:
# 806 "yacc.ym"
{yyval=mkbitfielddecl(yyvsp[ -2],yyvsp[0]);}
break;
case 293:
# 810 "yacc.ym"
{
# 816 "yacc.ym"
yyval=yyvsp[0];
# 820 "yacc.ym"
}
break;
case 294:
# 824 "yacc.ym"
{yyval=mkexprstmt(yyvsp[ -1]);}
break;
case 295:
# 826 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 296:
# 828 "yacc.ym"
{yyval=mklabeledstmt(yyvsp[ -2],yyvsp[0]);}
break;
case 297:
# 830 "yacc.ym"
{yyval=mkcasestmt(yyvsp[ -3],yyvsp[ -2],yyvsp[0]);}
break;
case 298:
# 832 "yacc.ym"
{yyval=mkdefaultstmt(yyvsp[ -2],yyvsp[0]);}
break;
case 299:
# 834 "yacc.ym"
{yyval=mkifstmt(yyvsp[ -4],yyvsp[ -2],yyvsp[0]);}
break;
case 300:
# 836 "yacc.ym"
{yyval=mkifelsestmt(yyvsp[ -6],yyvsp[ -4],yyvsp[ -2],yyvsp[ -1],yyvsp[0]);}
break;
case 301:
# 838 "yacc.ym"
{yyval=mkswitchstmt(yyvsp[ -4],yyvsp[ -2],yyvsp[0]);}
break;
case 302:
# 840 "yacc.ym"
{yyval=mkwhilestmt(yyvsp[ -4],yyvsp[ -2],yyvsp[0]);}
break;
case 303:
# 842 "yacc.ym"
{yyval=mkdostmt(yyvsp[ -6],yyvsp[ -5],yyvsp[ -4],yyvsp[ -2]);}
break;
case 304:
# 844 "yacc.ym"
{yyval=mkforstmt(yyvsp[ -8],yyvsp[ -6],yyvsp[ -4],yyvsp[ -2],yyvsp[0]);}
break;
case 305:
# 846 "yacc.ym"
{yyval=mkgotostmt(yyvsp[ -2],yyvsp[ -1]);}
break;
case 306:
# 848 "yacc.ym"
{yyval=mkcontinuestmt(yyvsp[ -1]);}
break;
case 307:
# 850 "yacc.ym"
{yyval=mkbreakstmt(yyvsp[ -1]);}
break;
case 308:
# 852 "yacc.ym"
{yyval=mkreturnstmt(yyvsp[ -1],(id)0);}
break;
case 309:
# 854 "yacc.ym"
{yyval=mkreturnstmt(yyvsp[ -2],yyvsp[ -1]);}
break;
case 310:
# 856 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 311:
# 858 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 312:
# 860 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 313:
# 864 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 314:
# 866 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 315:
# 870 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 316:
# 872 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 317:
# 876 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 318:
# 878 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"*",yyvsp[0]);}
break;
case 319:
# 880 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"/",yyvsp[0]);}
break;
case 320:
# 882 "yacc.ym"
{yyval=mkbinexpr(yyvsp[ -2],"%",yyvsp[0]);}
break;
case 321:
# 886 "yacc.ym"
{procextdef(yyvsp[0]);}
break;
case 322:
# 888 "yacc.ym"
{procextdef(yyvsp[0]);}
break;
case 323:
# 892 "yacc.ym"
{yyval=mktypename(yyvsp[0],(id)0);}
break;
case 324:
# 894 "yacc.ym"
{yyval=mktypename(yyvsp[ -1],yyvsp[0]);}
break;
case 325:
# 898 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 326:
# 900 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 327:
# 902 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 328:
# 904 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 329:
# 906 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 330:
# 908 "yacc.ym"
{yyval=mktypeof(yyvsp[ -3],yyvsp[ -1]);}
break;
case 331:
# 912 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 332:
# 914 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 333:
# 918 "yacc.ym"
{yyval=mklist((id)0,yyvsp[0]);}
break;
case 334:
# 920 "yacc.ym"
{yyval=mklist(yyvsp[ -1],yyvsp[0]);}
break;
case 335:
# 924 "yacc.ym"
{yyval=yyvsp[0];}
break;
case 336:
# 926 "yacc.ym"
{
id objcT10;

# 926 "yacc.ym"
yyval=mkunaryexpr((objcT10=yyvsp[ -1],(*(STR(*)(id,SEL))_imp(objcT10,selTransTbl[0]))(objcT10,selTransTbl[0])),yyvsp[0]);}
break;
case 337:
# 928 "yacc.ym"
{
id objcT11;

# 928 "yacc.ym"
yyval=mkunaryexpr((objcT11=yyvsp[ -1],(*(STR(*)(id,SEL))_imp(objcT11,selTransTbl[0]))(objcT11,selTransTbl[0])),yyvsp[0]);}
break;
case 338:
# 930 "yacc.ym"
{yyval=mkunaryexpr("!",yyvsp[0]);}
break;
case 339:
# 932 "yacc.ym"
{yyval=mkunaryexpr("~",yyvsp[0]);}
break;
case 340:
# 934 "yacc.ym"
{yyval=mkaddressof(yyvsp[0]);}
break;
case 341:
# 936 "yacc.ym"
{yyval=mkdereference(yyvsp[0]);}
break;
case 342:
# 938 "yacc.ym"
{yyval=mkunaryexpr("+",yyvsp[0]);}
break;
case 343:
# 940 "yacc.ym"
{yyval=mkunaryexpr("-",yyvsp[0]);}
break;
case 344:
# 942 "yacc.ym"
{yyval=mksizeof(yyvsp[0]);}
break;
case 345:
# 944 "yacc.ym"
{yyval=mkbuiltincall(yyvsp[ -3],mklist((id)0,yyvsp[ -1]));}
break;
case 346:
# 946 "yacc.ym"
{yyval=mkbuiltincall(yyvsp[ -3],yyvsp[ -1]);}
break;
case 347:
# 948 "yacc.ym"
{
id objcT12;

# 948 "yacc.ym"
yyval=mkunaryexpr((objcT12=yyvsp[ -1],(*(STR(*)(id,SEL))_imp(objcT12,selTransTbl[0]))(objcT12,selTransTbl[0])),yyvsp[0]);}
break;
# 3148 "y.tab.c"
}
yyssp-=yym;
yystate= *yyssp;
yyvsp-=yym;
yym=yylhs[yyn];
if(yystate==0&&yym==0)
{
# 3160 "y.tab.c"
yystate=22; * ++
yyssp=22; * ++
yyvsp=yyval;
if(yychar<0)
{
if((yychar=yylex())<0)yychar=0;
# 3176 "y.tab.c"
}
if(yychar==0)goto yyaccept;
goto yyloop;
}
if((yyn=yygindex[yym])&&(yyn+=yystate)>=0&&
yyn<=4478&&yycheck[yyn]==yystate)
yystate=yytable[yyn];
else
yystate=yydgoto[yym];
# 3190 "y.tab.c"
if(yyssp>=yyss+500-1)
{
goto yyoverflow;
} * ++
yyssp=yystate; * ++
yyvsp=yyval;
goto yyloop;
yyoverflow:
yyerror("yacc stack overflow");
yyabort:
return(1);
yyaccept:
return(0);
}
static char *_selTransTbl[] ={
"strCopy",
"gen",
0
};
struct modDescriptor yacc_modDesc = {
  "yacc",
  "objc3.2.8",
  0L,
  0,
  0,
  0,
  2,
  _selTransTbl,
  0
};
struct modDescriptor *_OBJCBIND_yacc(void)
{
  selTransTbl = _selTransTbl;
  return &yacc_modDesc;
}
int _OBJCPOSTLINK_yacc = 1;




syntax highlighted by Code2HTML, v. 0.9.1