home *** CD-ROM | disk | FTP | other *** search
/ Aminet 10 / aminetcdnumber101996.iso / Aminet / util / gnu / groff_src.lha / groff-1.10src / pic / pic.cc < prev    next >
C/C++ Source or Header  |  1995-11-20  |  219KB  |  5,284 lines

  1. #if defined(__STDC__) || defined(__cplusplus)
  2. #define YYCONST const
  3. #define YYPARAMS(x) x
  4. #define YYDEFUN(name, arglist, args) name(args)
  5. #define YYAND ,
  6. #define YYPTR void *
  7. #else
  8. #define YYCONST
  9. #define YYPARAMS(x) ()
  10. #define YYDEFUN(name, arglist, args) name arglist args;
  11. #define YYAND ;
  12. #define YYPTR char *
  13. #endif
  14. #ifndef lint
  15. YYCONST static char yysccsid[] = "@(#)yaccpar    1.8 (Berkeley +Cygnus.28) 01/20/91";
  16. #endif
  17. #define YYBYACC 1
  18. #ifndef YYDONT_INCLUDE_STDIO
  19. #include <stdio.h>
  20. #endif
  21. #ifdef __cplusplus
  22. #include <stdlib.h> /* for malloc/realloc/free */
  23. #endif
  24. #line 20 "pic.y"
  25. #include "pic.h"
  26. #include "ptable.h"
  27. #include "object.h"
  28.  
  29. extern int delim_flag;
  30. extern void do_copy(const char *);
  31. extern void copy_rest_thru(const char *, const char *);
  32. extern void copy_file_thru(const char *, const char *, const char *);
  33. extern void push_body(const char *);
  34. extern void do_for(char *var, double from, double to,
  35.            int by_is_multiplicative, double by, char *body);
  36. extern void do_lookahead();
  37.  
  38. #undef fmod
  39. #undef rand
  40.  
  41. extern "C" {
  42.   double fmod(double, double);
  43.   int rand();
  44. }
  45.  
  46. /* Maximum number of characters produced by printf("%g") */
  47. #define GDIGITS 14
  48.  
  49. int yylex();
  50. void yyerror(const char *);
  51.  
  52. void reset(const char *nm);
  53. void reset_all();
  54.  
  55. place *lookup_label(const char *);
  56. void define_label(const char *label, const place *pl);
  57.  
  58. direction current_direction;
  59. position current_position;
  60.  
  61. implement_ptable(place)
  62.  
  63. PTABLE(place) top_table;
  64.  
  65. PTABLE(place) *current_table = &top_table;
  66. saved_state *current_saved_state = 0;
  67.  
  68. object_list olist;
  69.  
  70. const char *ordinal_postfix(int n);
  71. const char *object_type_name(object_type type);
  72. char *format_number(const char *form, double n);
  73. char *do_sprintf(const char *form, const double *v, int nv);
  74.  
  75. #line 73 "pic.y"
  76. typedef union {
  77.     char *str;
  78.     int n;
  79.     double x;
  80.     struct { double x, y; } pair;
  81.     struct { double x; char *body; } if_data;
  82.     struct { char *str; const char *filename; int lineno; } lstr;
  83.     struct { double *v; int nv; int maxv; } dv;
  84.     struct { double val; int is_multiplicative; } by;
  85.     place pl;
  86.     object *obj;
  87.     corner crn;
  88.     path *pth;
  89.     object_spec *spec;
  90.     saved_state *pstate;
  91.     graphics_state state;
  92.     object_type obtype;
  93. } YYSTYPE;
  94. #line 95 "y.tab.c"
  95. #define LABEL 257
  96. #define VARIABLE 258
  97. #define NUMBER 259
  98. #define TEXT 260
  99. #define COMMAND_LINE 261
  100. #define DELIMITED 262
  101. #define ORDINAL 263
  102. #define TH 264
  103. #define LEFT_ARROW_HEAD 265
  104. #define RIGHT_ARROW_HEAD 266
  105. #define DOUBLE_ARROW_HEAD 267
  106. #define LAST 268
  107. #define UP 269
  108. #define DOWN 270
  109. #define LEFT 271
  110. #define RIGHT 272
  111. #define BOX 273
  112. #define CIRCLE 274
  113. #define ELLIPSE 275
  114. #define ARC 276
  115. #define LINE 277
  116. #define ARROW 278
  117. #define MOVE 279
  118. #define SPLINE 280
  119. #define HEIGHT 281
  120. #define RADIUS 282
  121. #define WIDTH 283
  122. #define DIAMETER 284
  123. #define FROM 285
  124. #define TO 286
  125. #define AT 287
  126. #define WITH 288
  127. #define BY 289
  128. #define THEN 290
  129. #define DOTTED 291
  130. #define DASHED 292
  131. #define CHOP 293
  132. #define SAME 294
  133. #define INVISIBLE 295
  134. #define LJUST 296
  135. #define RJUST 297
  136. #define ABOVE 298
  137. #define BELOW 299
  138. #define OF 300
  139. #define THE 301
  140. #define WAY 302
  141. #define BETWEEN 303
  142. #define AND 304
  143. #define HERE 305
  144. #define DOT_N 306
  145. #define DOT_E 307
  146. #define DOT_W 308
  147. #define DOT_S 309
  148. #define DOT_NE 310
  149. #define DOT_SE 311
  150. #define DOT_NW 312
  151. #define DOT_SW 313
  152. #define DOT_C 314
  153. #define DOT_START 315
  154. #define DOT_END 316
  155. #define DOT_X 317
  156. #define DOT_Y 318
  157. #define DOT_HT 319
  158. #define DOT_WID 320
  159. #define DOT_RAD 321
  160. #define SIN 322
  161. #define COS 323
  162. #define ATAN2 324
  163. #define LOG 325
  164. #define EXP 326
  165. #define SQRT 327
  166. #define K_MAX 328
  167. #define K_MIN 329
  168. #define INT 330
  169. #define RAND 331
  170. #define COPY 332
  171. #define THRU 333
  172. #define TOP 334
  173. #define BOTTOM 335
  174. #define UPPER 336
  175. #define LOWER 337
  176. #define SH 338
  177. #define PRINT 339
  178. #define CW 340
  179. #define CCW 341
  180. #define FOR 342
  181. #define DO 343
  182. #define IF 344
  183. #define ELSE 345
  184. #define ANDAND 346
  185. #define OROR 347
  186. #define NOTEQUAL 348
  187. #define EQUALEQUAL 349
  188. #define LESSEQUAL 350
  189. #define GREATEREQUAL 351
  190. #define LEFT_CORNER 352
  191. #define RIGHT_CORNER 353
  192. #define CENTER 354
  193. #define END 355
  194. #define START 356
  195. #define RESET 357
  196. #define UNTIL 358
  197. #define PLOT 359
  198. #define THICKNESS 360
  199. #define FILL 361
  200. #define ALIGNED 362
  201. #define SPRINTF 363
  202. #define COMMAND 364
  203. #define DEFINE 365
  204. #define UNDEF 366
  205. #define YYERRCODE 256
  206. static YYCONST short yylhs[] = {                                        -1,
  207.     0,    0,   16,   17,   17,   28,   28,   29,   29,   30,
  208.    30,   30,   30,   30,   30,   30,   30,   30,   31,   30,
  209.    30,   32,   33,   30,   34,   35,   30,   36,   30,   30,
  210.    37,   30,   30,   30,   38,   38,   38,   26,   26,   27,
  211.    27,   27,   39,    7,   23,   23,    2,    2,    3,    3,
  212.     3,    3,    3,    3,    3,    3,    3,    4,    4,    4,
  213.    15,   15,   15,   15,   40,   42,   15,   15,   41,   41,
  214.    18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
  215.    18,   43,   18,   18,   18,   18,   18,   18,   18,   18,
  216.    18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
  217.    18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
  218.    18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
  219.    18,   18,   18,   18,   25,   25,   24,   24,   19,   19,
  220.     6,    6,    6,    6,    6,    6,   44,   44,    5,    5,
  221.    13,   13,   13,   13,   13,   14,   14,   14,   22,   22,
  222.    21,   21,    8,    8,   20,   20,   20,   20,   20,   20,
  223.    20,   20,   20,   11,   11,   12,   12,   12,   10,   10,
  224.    10,   10,   10,   10,    9,    9,    9,    9,    9,    9,
  225.     9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  226.     9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  227.     9,    9,    1,    1,    1,    1,    1,    1,    1,    1,
  228.     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  229.     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  230.     1,    1,    1,    1,    1,    1,    1,
  231. };
  232. static YYCONST short yylen[] = {                                         2,
  233.     1,    1,    3,    1,    3,    0,    1,    1,    2,    3,
  234.     4,    1,    1,    1,    1,    1,    2,    2,    0,    3,
  235.     2,    0,    0,    7,    0,    0,    6,    0,   10,    1,
  236.     0,    4,    1,    1,    2,    2,    3,    1,    2,    1,
  237.     1,    1,    0,    5,    0,    2,    1,    1,    3,    3,
  238.     3,    3,    3,    3,    3,    3,    2,    0,    2,    3,
  239.     1,    4,    4,    4,    0,    0,    6,    1,    0,    1,
  240.     1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
  241.     3,    0,    4,    3,    3,    3,    3,    2,    2,    3,
  242.     2,    3,    2,    3,    2,    3,    3,    3,    3,    3,
  243.     3,    2,    2,    3,    2,    3,    2,    3,    2,    3,
  244.     2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  245.     2,    2,    3,    2,    1,    5,    0,    3,    1,    1,
  246.     1,    3,    3,    5,    5,    6,    1,    4,    3,    3,
  247.     1,    2,    2,    3,    1,    1,    1,    3,    1,    3,
  248.     1,    2,    2,    2,    1,    1,    1,    1,    1,    1,
  249.     1,    2,    1,    2,    3,    1,    1,    2,    1,    5,
  250.     4,    3,    3,    2,    1,    1,    1,    1,    1,    1,
  251.     1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
  252.     2,    2,    2,    1,    1,    2,    2,    2,    2,    1,
  253.     1,    1,    1,    1,    2,    2,    2,    2,    2,    3,
  254.     3,    3,    3,    3,    3,    2,    3,    4,    4,    6,
  255.     4,    4,    4,    6,    6,    4,    4,    3,    3,    3,
  256.     3,    3,    3,    3,    3,    3,    2,
  257. };
  258. static YYCONST short yydefred[] = {                                      0,
  259.     8,    0,    2,    0,    0,    0,    0,  125,   16,   12,
  260.    13,   14,   15,   71,   72,   73,   74,   75,   76,   77,
  261.    78,    0,   19,    0,    0,    0,    0,    0,    0,    0,
  262.    65,   82,    0,    4,    0,    0,   79,   68,    0,    9,
  263.     0,    0,    0,    0,   25,    0,  146,  203,  204,  149,
  264.   151,  188,  189,  145,  175,  176,  177,  178,  179,  180,
  265.   181,  182,  183,  184,  185,    0,    0,    0,    0,    0,
  266.     0,    0,    0,    0,    0,  186,  187,    0,    0,  194,
  267.   195,  200,  202,  201,    0,    0,    0,    0,    0,  131,
  268.   129,  147,    0,    0,    0,    0,    0,    0,   41,    0,
  269.    38,    0,    0,    0,    0,    0,    0,    0,    0,   35,
  270.     0,    0,    0,    0,    0,   31,    3,    0,  113,  114,
  271.   115,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  272.     0,    0,    0,    0,  102,    0,    0,    0,  111,  112,
  273.   119,  120,  121,  122,  116,  117,    0,    0,  124,    0,
  274.   118,   36,    0,    0,   10,    0,   22,    0,   20,    0,
  275.     0,    0,    0,    0,    0,    0,    0,    0,    0,  190,
  276.   192,  196,  198,  191,  193,  197,  199,    0,    0,    0,
  277.     0,    0,    0,    0,    0,  137,    0,    0,    0,    0,
  278.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  279.     0,    0,    0,    0,  205,  206,  207,  208,  209,    0,
  280.   142,    0,    0,  163,  155,  156,  157,  158,  159,  160,
  281.   161,    0,  154,  152,  153,   39,    0,    0,   57,    0,
  282.     0,    0,   43,    0,    0,    0,    0,   81,  127,    0,
  283.     0,    0,    0,    5,    0,    0,    0,    0,    0,    0,
  284.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  285.     0,  166,  100,    0,  169,    0,    0,  101,    0,    0,
  286.     0,    0,    0,   37,    0,    0,    0,    0,    0,    0,
  287.    62,    0,   11,    0,   26,    0,    0,    0,    0,    0,
  288.     0,    0,    0,    0,  228,    0,  217,  140,    0,  150,
  289.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  290.     0,    0,    0,    0,    0,    0,    0,    0,    0,  148,
  291.   132,  133,  162,    0,    0,   53,    0,    0,    0,    0,
  292.     0,   51,    0,    0,   50,   49,    0,   66,   83,   32,
  293.   174,    0,    0,    0,    0,  164,    0,  168,    0,    0,
  294.    23,    0,  218,  219,    0,  221,  222,  223,    0,    0,
  295.   226,  227,    0,    0,    0,    0,    0,   44,    0,  126,
  296.     0,    0,  173,  172,    0,  165,    0,    0,   27,    0,
  297.     0,    0,  134,  138,    0,    0,    0,    0,   70,   67,
  298.   171,    0,   24,   46,  220,  224,  225,  136,    0,    0,
  299.   170,    0,    0,   28,    0,    0,   29,
  300. };
  301. static YYCONST short yydgoto[] = {                                       2,
  302.   105,  179,  107,  400,   90,   91,   33,   92,   93,  263,
  303.   264,  265,  108,   95,   34,    3,   35,   36,   96,  223,
  304.    97,   98,  379,  337,  109,  100,  101,  241,    5,   38,
  305.    46,  284,  377,  158,  352,  406,  243,   39,  330,  114,
  306.   390,  371,  115,  202,
  307. };
  308. static YYCONST short yysindex[] = {                                    -52,
  309.     0,    0,    0, 5205,  -46,    7,  -12,    0,    0,    0,
  310.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  311.     0, -249,    0,10894, -198,11035, -186,11441,   51,10894,
  312.     0,    0, -251,    0,  -52,10595,    0,    0,  -42,    0,
  313.   -52,11035,   35, -236,    0, -145,    0,    0,    0,    0,
  314.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  315.     0,    0,    0,    0,    0,   79,   80,   85,   87,   91,
  316.    94,   98,  101,  102,  107,    0,    0, -126,  -67,    0,
  317.     0,    0,    0,    0,11136,11035,11441,11441, 1187,    0,
  318.     0,    0,  -71, -250, 2230,  -10,  575,  426,    0,10894,
  319.     0,   71,11035,11035, 1220, -141, -305, -250, -291,    0,
  320.   -28, -101,10894,  -52,  -52,    0,    0, 9974,    0,    0,
  321.     0,11746,11746,11746,11746,11441,11441,11441,11441,11542,
  322. 11542,11542, 4851,11645,    0,11746,11746,11746,    0,    0,
  323.     0,    0,    0,    0,    0,    0,11441,11746,    0, 1647,
  324.     0,    0,  -98,10233,    0,11035,    0, -100,    0,11035,
  325. 11035,11035,11035,11035,11035,11035,11035,11035,10736,    0,
  326.     0,    0,    0,    0,    0,    0,    0, 1626,  141,  146,
  327.    42,  -73,   99,   99, -105,    0,11441,11441,11441,11441,
  328. 11441,11441,11441,11542,11441,11441,11441,11441,11441,11441,
  329. 11441,11542,  -18,  152,    0,    0,    0,    0,    0,  -56,
  330.     0,11645,11645,    0,    0,    0,    0,    0,    0,    0,
  331.     0,  120,    0,    0,    0,    0,11441,   99,    0,11035,
  332. 11035,11441,    0,11035,11035, -242, -242,    0,    0,   89,
  333.  5205,  125,  -41,    0, 1647, 1647, 1647, 1647, 1647, 1647,
  334.  1647, 1647, 1187,  -10,  -10,  -10, 2121,  455,  575, 2121,
  335.   -33,    0,    0, 2134,    0,11237,  781,    0, 1647, 1647,
  336.  1647, 1647, 1647,    0,    7,  -12,    0,    0,    0, -250,
  337.     0,  -10,    0,  -32,    0,  202,  203,  189,  207,  208,
  338.   210,  209,  217,  235,    0,  243,    0,    0,11542,    0,
  339.    -1, 1117, 1180,  739,  739,  357,  357, 1647,  -21,  192,
  340.   357,   46,   46,   99,   99,   99,   99,  -35,  152,    0,
  341.     0,    0,    0, 1076, 1117,    0, 1659,  -44,  357,   47,
  342.  1117,    0, 1659,  -44,    0,    0,   10,    0,    0,    0,
  343.     0,  575, 2121, 2121,  264,    0,   67,    0, 1208,  146,
  344.     0,  -27,    0,    0,11035,    0,    0,    0,11035,11035,
  345.     0,    0,    2,   13,11542,11542,11441,    0,11441,    0,
  346.  5205, 2121,    0,    0, 2121,    0,  -27,   65,    0,  285,
  347.   292,  293,    0,    0,  -14,  -10, 1619, 1647,    0,    0,
  348.     0,  299,    0,    0,    0,    0,    0,    0,11340,    1,
  349.     0,11441, 1647,    0, 1647,   86,    0,
  350. };
  351. static YYCONST short yyrindex[] = {                                     20,
  352.     0,    0,    0,  347,  150,    0,    0,    0,    0,    0,
  353.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  354.     0,    0,    0,    0,    0,    0,   23,    0,    0,    0,
  355.     0,    0,   59,    0,  109,  212,    0,    0,  268,    0,
  356. 10487,    0,    0,  287,    0,    0,    0,    0,    0,    0,
  357.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  358.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  359.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  360.     0,    0,    0,    0,    0,    0,    0,    0, 8932,    0,
  361.     0,    0,    0, 4221, 8476, 9124,    0,    0,    0,  589,
  362.     0,    0,    0,    0,  181,    0,  721,    0,    0,    0,
  363. 10102,    0,  615, 5629, 5629,    0,    0,  122,    0,    0,
  364.     0, 9441, 9481, 9223, 9331,    0,    0,    0,    0,    0,
  365.     0,    0,    0,    0,    0, 9580, 9690, 9789,    0,    0,
  366.     0,    0,    0,    0,    0,    0,    0, 9829,    0, 4977,
  367.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  368.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  369.     0,    0,    0,    0,    0,    0,    0,  308,    0,  213,
  370.     0,    0,  270,  602,    0,    0,    0,    0,    0,    0,
  371.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  372.     0,    0,    0, 2904,    0,    0,    0,    0,    0,    0,
  373.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  374.     0,    0,    0,    0,    0,    0,    0, 8437,    0,    0,
  375.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  376.     0,    0,    0,    0, 5084, 5401, 5508, 5825, 5932, 6249,
  377.  6356, 6673,    0, 6780, 7097, 7204,    0,    0,    0,    0,
  378.     0,    0,    0, 8782,    0,    0,    0,    0, 7521, 7628,
  379.  7945, 8052, 8369,    0,10163, 2065,  135, 1861,   36,  591,
  380.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  381.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  382.     0, 3782, 4114, 3236, 3343, 2026, 2358, 4660, 8825,    0,
  383.  2465, 1587, 1919,  709, 1041, 1148, 1480,    0, 3675,    0,
  384.     0,    0,    0,    0,  390,    0, 8929,  179, 2797,    0,
  385.    92,    0,  614,  720,    0,    0,    0,    0,    0,    0,
  386.     0,    0,    0,    0,    0,    0,    0,    0,  308,    0,
  387.     0,  652,    0,    0,    0,    0,    0,    0,    0,    0,
  388.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  389.   679,    0,    0,    0,    0,    0,  652,    0,    0,    0,
  390.     0,    0,    0,    0,    0, 4553,    8,   11,    0,    0,
  391.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  392.     0,    0,   12,    0,   14,    0,    0,
  393. };
  394. static YYCONST short yygindex[] = {                                      0,
  395.   -24,  627,  -77,    0,  -57,  196,    0,    0,   -5,    0,
  396.     0,  265, 1084,  -88, -117,  -40,    0,    0,  134,  -59,
  397.     0,    0,  -23,    0,   26,  323,  -60,    3,  325,    0,
  398.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  399.     0,    0,    0,    0,
  400. };
  401. #define YYTABLESIZE 12102
  402. static YYCONST short yytable[] = {                                      89,
  403.   244,  153,    4,  111,  204,   89,    1,  212,  200,  213,
  404.    44,  150,   40,  198,  196,  200,  197,    8,  199,    6,
  405.   198,  196,   34,  197,   86,  199,  229,  180,  212,   37,
  406.   213,  232,  212,  195,  213,   63,  281,  117,  225,  226,
  407.   234,  235,  383,  154,  212,   43,  213,  398,   42,   99,
  408.   370,  128,  226,  369,  128,   99,  236,  237,   30,  102,
  409.   178,  151,  183,  184,   41,  201,  205,  206,  207,  208,
  410.   209,  110,  201,  240,  242,   89,  268,   86,  129,  228,
  411.   129,   34,  200,   45,  212,  299,  213,  198,   89,  211,
  412.   112,   52,  199,  116,   63,  156,  157,  245,  246,  247,
  413.   248,  249,  250,  251,  252,  253,  253,  253,    6,  267,
  414.     6,  269,  270,  271,  319,   34,  159,   30,  160,  161,
  415.    29,    7,  272,  273,  162,   99,  163,  262,   63,  253,
  416.   164,  227,   52,  165,   14,   52,  238,  166,   99,  201,
  417.   167,  168,    6,   37,  170,  171,  169,   34,  233,    7,
  418.    52,   30,  326,  328,  321,  322,  332,  334,  239,  274,
  419.    63,  285,  302,  303,  304,  305,  306,  307,  308,  309,
  420.   311,  312,  313,  314,  315,  316,  317,  253,   56,   37,
  421.    47,  297,    7,   30,   52,   47,  298,  267,  267,    7,
  422.   300,   50,  201,   14,    7,  301,   51,  210,  343,  344,
  423.   320,    6,  324,  174,  175,  325,  327,  329,  350,  331,
  424.   333,   61,  323,  338,    7,  152,   52,  339,  181,   56,
  425.   340,   47,   56,  346,   47,  172,  173,   14,  203,  351,
  426.   188,    8,  355,    6,  212,  365,  213,   56,   47,   47,
  427.     7,  349,  353,  354,   50,    7,    7,  356,  357,   51,
  428.   358,  262,  359,  389,  262,  131,  131,  131,  348,   14,
  429.   360,  335,  336,  254,  255,  256,   37,   33,  366,  216,
  430.    61,   56,    7,   47,  253,  361,    6,    6,  185,    6,
  431.     6,  186,  372,  362,  176,  177,   21,  282,    6,    6,
  432.     6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
  433.   364,  234,  216,   56,   61,   47,  216,  375,  368,  216,
  434.   216,  216,  216,  216,  216,  384,  216,  187,  188,  189,
  435.   190,  191,  192,  376,  394,  395,   33,  310,  216,  216,
  436.   378,  216,  396,  397,   29,  318,   61,  262,  262,  401,
  437.   253,  253,  387,  404,  388,   21,    1,  407,   47,  279,
  438.    58,    6,  113,  393,   59,   52,   60,    6,    6,  118,
  439.    33,    6,  216,    6,    0,  216,  262,    0,    0,  262,
  440.     0,    0,    0,    0,  403,    0,    6,  405,    6,   21,
  441.     0,   52,    6,    6,    0,    0,    0,    0,    0,  235,
  442.     0,  188,   33,  200,  216,    0,   37,  188,  198,  196,
  443.     0,  197,  188,  199,    0,    0,    7,    7,    7,    7,
  444.     7,   21,    7,    0,    0,    0,    0,    7,    7,    7,
  445.     7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  446.   235,    0,  363,  235,  188,    0,    0,   52,   52,    0,
  447.     0,    0,   56,    0,   47,    0,    0,    0,  235,    0,
  448.   201,    0,    0,    0,    7,    7,    7,    7,    7,    7,
  449.     7,    7,    7,    7,    7,    7,    0,    0,   56,    0,
  450.    47,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  451.     7,    7,  235,    7,    7,    7,    7,    7,    7,    0,
  452.     0,    7,    0,    7,    0,    0,    0,    0,  385,  386,
  453.     0,    7,    7,    7,    7,    7,    7,    0,    7,    0,
  454.     0,    0,    7,    7,  235,    0,  222,    0,    0,    0,
  455.     0,  341,    0,    0,  345,   56,  216,  216,  216,  216,
  456.     0,    0,  216,  216,  216,  216,  216,  216,  216,  216,
  457.   216,  216,    0,    0,    0,  222,    0,    0,    0,    0,
  458.   216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
  459.   216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
  460.     0,    0,  216,  216,  216,  216,  216,  216,  216,  216,
  461.   216,  216,  216,  216,  216,  216,    0,    0,   18,    0,
  462.    64,  216,  216,  216,  216,  216,  216,  216,  216,  216,
  463.   216,  237,    0,  216,  216,  216,  216,  373,  374,  216,
  464.   216,    0,  216,   55,   17,  216,  216,  216,  216,  216,
  465.   216,  216,  216,  216,  216,  216,    0,    0,    0,  216,
  466.   216,  216,  216,  130,  237,  130,  391,    0,  237,  392,
  467.     0,  237,  237,  237,  237,  237,  237,   18,  237,   64,
  468.     0,   45,  106,  235,   55,    0,    0,   55,    0,    0,
  469.   237,  237,    0,  237,    0,  222,    0,    0,  155,    0,
  470.     0,    0,   55,   17,    0,    0,    0,    0,   69,  235,
  471.     0,   18,    0,   64,    0,  214,    0,    0,    0,  235,
  472.     0,    0,  235,  224,  237,    0,    0,  237,  215,  216,
  473.   217,  218,  219,  220,    0,  221,   55,   17,  212,    0,
  474.    45,    0,  182,   18,  214,   64,    0,    0,    0,   54,
  475.    48,    0,  342,    0,    0,    0,  237,  215,  216,  217,
  476.   218,  219,  220,    0,  221,  235,  235,   69,   55,   17,
  477.     0,  212,    0,    0,   45,  212,    0,    0,  212,  212,
  478.   212,  212,  212,  212,    0,  212,    0,    0,    0,    0,
  479.    54,   48,    0,   54,   48,    0,    0,  212,  212,    0,
  480.   212,   69,    0,    0,    0,  200,   45,    0,   54,   48,
  481.   198,  196,  283,  197,    0,  199,  286,  287,  288,  289,
  482.   290,  291,  292,  293,  294,  296,    0,    0,  232,    0,
  483.   195,  212,    0,   69,  212,    0,    0,    0,    0,    0,
  484.     0,    0,   54,   48,    0,    0,    0,  200,    0,    0,
  485.     0,    0,  198,  196,  193,  197,    0,  199,    0,    0,
  486.     0,    0,  201,  212,  214,    0,    0,    0,    0,    0,
  487.   232,    0,  195,    0,   54,   48,    0,  215,  216,  217,
  488.   218,  219,  220,    0,  221,    0,    0,    0,  237,  237,
  489.   237,  237,    0,    0,  237,  237,  237,  237,  237,  237,
  490.   237,  237,  237,  237,  201,    0,    0,   55,    0,    0,
  491.     0,    0,  237,  237,  237,  237,  237,  237,  237,  237,
  492.   237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
  493.   237,  237,    0,   55,  237,  237,  237,  237,  237,  237,
  494.   237,  237,  237,  237,  237,  237,  237,  237,    0,    0,
  495.     0,    0,    0,  237,  237,  237,  237,  237,  237,  237,
  496.   237,  237,  237,    0,    0,  237,  237,  237,  237,    0,
  497.     0,  237,  237,    0,  237,    0,    0,  237,  237,  237,
  498.   237,  237,  237,  237,  237,  237,  237,  237,    0,    0,
  499.    55,  237,  237,  237,  237,  212,  212,  212,  212,    0,
  500.     0,  212,  212,  212,  212,  212,  212,  212,  212,  212,
  501.   212,  380,    0,   54,   48,  381,  382,    0,    0,  212,
  502.   212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
  503.   212,  212,  212,  212,  212,  212,  212,  212,  212,   54,
  504.    48,  212,  212,  212,  212,  212,  212,  212,  212,  212,
  505.   212,  212,  212,  212,  212,    0,    0,    0,    0,    0,
  506.   212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
  507.   213,    0,  212,  212,  212,  212,    0,    0,  212,  212,
  508.     0,  212,    0,    0,  212,  212,  212,  212,  212,  212,
  509.   212,  212,  212,  212,  212,    0,   54,    0,  212,  212,
  510.   212,  212,    0,  213,    0,    0,    0,  213,    0,    0,
  511.   213,  213,  213,  213,  213,  213,    0,  213,  191,  192,
  512.     0,    0,    0,    0,    0,    0,    0,    0,    0,  213,
  513.   213,    0,  213,    0,    0,    0,    0,   94,    0,    0,
  514.     0,    0,  200,   94,    0,    0,    0,  198,  196,    0,
  515.   197,    0,  199,    0,    0,    0,  187,  188,  189,  190,
  516.   191,  192,    0,  213,    0,  232,  213,  195,    0,    0,
  517.     0,    0,    0,    0,    0,    0,    0,  214,    0,    0,
  518.     0,    0,    0,  200,    0,    0,    0,    0,  198,  196,
  519.     0,  197,    0,  199,    0,  213,    0,    0,   94,  201,
  520.     0,    0,    0,    0,    0,    0,  232,    0,  195,    0,
  521.   214,    0,    0,   94,  214,    0,    0,  214,  214,  214,
  522.   214,  214,  214,    0,  214,    0,   94,    0,    0,    0,
  523.     0,    0,    0,    0,    0,    0,  214,  214,    0,  214,
  524.   201,    0,    0,   94,   94,   94,  200,    0,    0,    0,
  525.     0,  198,  196,  200,  197,    0,  199,    0,  198,  196,
  526.   193,  197,    0,  199,    0,    0,    0,  280,    0,  232,
  527.   214,  195,    0,  214,  200,    0,  194,    0,  195,  198,
  528.   196,  193,  197,    0,  199,    0,  200,    0,    0,    0,
  529.     0,  198,  196,    0,  197,    0,  199,  232,    0,  195,
  530.     0,    0,  214,  201,    0,    0,    0,   94,    0,  232,
  531.   201,  195,    0,    0,    0,   94,    0,    0,    0,    0,
  532.     0,    0,    0,    0,    0,    0,    0,  213,  213,  213,
  533.   213,  201,    0,  213,  213,  213,  213,  213,  213,  213,
  534.   213,  213,  213,  201,    0,    0,    0,    0,    0,    0,
  535.     0,  213,  213,  213,  213,  213,  213,  213,  213,  213,
  536.   213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
  537.   213,    0,    0,  213,  213,  213,  213,  213,  213,  213,
  538.   213,  213,  213,  213,  213,  213,  213,    0,    0,    0,
  539.     0,  367,  213,  213,  213,  213,  213,  213,  213,  213,
  540.   213,  213,    0,    0,  213,  213,  213,  213,    0,    0,
  541.   213,  213,   94,  213,    0,    0,  213,  213,  213,  213,
  542.   213,  213,  213,  213,  213,  213,  213,    0,    0,    0,
  543.   213,  213,  213,  213,  214,  214,  214,  214,    0,    0,
  544.   214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  545.     0,  187,  188,  189,  190,  191,  192,    0,  214,  214,
  546.   214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  547.   214,  214,  214,  214,  214,  214,  214,  214,   94,   94,
  548.   214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
  549.   214,  214,  214,  214,  189,  190,  191,  192,    0,  214,
  550.   214,  214,  214,  214,  214,  214,  214,  214,  214,  215,
  551.     0,  214,  214,  214,  214,    0,  185,  214,  214,  186,
  552.   214,    0,    0,  214,  214,  214,  214,  214,  214,  214,
  553.   214,  214,  214,  214,    0,    0,    0,  214,  214,  214,
  554.   214,    0,  215,    0,    0,    0,  215,    0,    0,  215,
  555.   215,  215,  215,  215,  215,  187,  215,  189,  190,  191,
  556.   192,    0,  187,  188,  189,  190,  191,  192,  215,  215,
  557.     0,  215,    0,    0,    0,    0,    0,    0,    0,    0,
  558.     0,    0,    0,  230,  231,  189,  190,  191,  192,    0,
  559.     0,    0,    0,    0,    0,  230,  231,  189,  190,  191,
  560.   192,    0,  215,    0,    0,  215,    0,    0,    0,    0,
  561.     0,    0,    0,    0,    0,    0,  210,    0,    0,    0,
  562.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  563.     0,    0,    0,    0,  215,    0,    0,    0,    0,    0,
  564.     0,    0,    0,    0,    0,    0,    0,    0,    0,  210,
  565.     0,    0,    0,    0,    0,    0,  210,  210,    0,  210,
  566.   210,  210,    0,    0,    0,    0,    0,    0,    0,    0,
  567.     0,    0,    0,    0,    0,  210,  210,    0,  210,    0,
  568.     0,    0,    0,    0,    0,  200,    0,    0,    0,    0,
  569.   198,  196,  200,  197,    0,  199,    0,  198,  196,  193,
  570.   197,    0,  199,    0,    0,    0,    0,    0,  232,  210,
  571.   195,    0,  210,  200,    0,  194,    0,  195,  198,  196,
  572.     0,  197,    0,  199,    0,  200,    0,    0,    0,    0,
  573.   198,  196,    0,  197,    0,  199,  232,    0,  195,    0,
  574.     0,  210,  201,    0,    0,    0,    0,    0,  232,  201,
  575.   195,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  576.     0,    0,    0,    0,    0,    0,  215,  215,  215,  215,
  577.   201,    0,  215,  215,  215,  215,  215,  215,  215,  215,
  578.   215,  215,  201,    0,    0,    0,    0,    0,    0,    0,
  579.   215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
  580.   215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
  581.     0,    0,  215,  215,  215,  215,  215,  215,  215,  215,
  582.   215,  215,  215,  215,  215,  215,    0,    0,    0,    0,
  583.     0,  215,  215,  215,  215,  215,  215,  215,  215,  215,
  584.   215,    0,    0,  215,  215,  215,  215,    0,    0,  215,
  585.   215,    0,  215,    0,    0,  215,  215,  215,  215,  215,
  586.   215,  215,  215,  215,  215,  215,    0,    0,    0,  215,
  587.   215,  215,  215,  210,  210,  210,  210,    0,    0,  210,
  588.   210,  210,  210,  210,  210,  210,  210,  210,  210,    0,
  589.    15,    0,    0,    0,    0,    0,    0,  210,  210,  210,
  590.   210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
  591.   210,  210,  210,  210,  210,  210,  210,    0,    0,  210,
  592.   210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
  593.   210,  210,  210,    0,    0,    0,    0,  399,  210,  210,
  594.   210,  210,  210,  210,  210,  210,  210,  210,  211,   15,
  595.   210,  210,  210,  210,    0,  185,  210,  210,  186,  210,
  596.     0,    0,  210,  210,  210,  210,  210,  210,  210,  210,
  597.   210,  210,  210,    0,    0,    0,  210,  210,  210,  210,
  598.     0,  211,    0,   15,    0,    0,  189,    0,  211,  211,
  599.     0,  211,  211,  211,  187,  188,  189,  190,  191,  192,
  600.     0,  230,  231,  189,  190,  191,  192,  211,  211,    0,
  601.   211,    0,    0,    0,    0,   15,    0,    0,    0,    0,
  602.     0,    0,  187,  188,  189,  190,  191,  192,    0,    0,
  603.     0,    0,    0,    0,  230,    0,  189,  190,  191,  192,
  604.     0,  211,    0,    0,  211,    0,    0,    0,    0,    0,
  605.     0,    0,    0,    0,    0,  230,    0,    0,    0,    0,
  606.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  607.     0,    0,    0,  211,    0,    0,    0,    0,    0,    0,
  608.     0,    0,    0,    0,    0,    0,    0,    0,  230,    0,
  609.     0,    0,    0,    0,    0,  230,  230,    0,    0,  230,
  610.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  611.     0,    0,    0,    0,  230,  230,    0,  230,    0,    0,
  612.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  613.     0,  203,    0,    0,    0,    0,  203,  203,  203,  203,
  614.     0,  203,    0,    0,    0,    0,    0,  189,  230,    0,
  615.     0,  230,    0,  189,  203,    0,  203,    0,  189,    0,
  616.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  617.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  618.   230,    0,    0,    0,    0,    0,    0,    0,  203,    0,
  619.   189,    0,    0,    0,    0,    0,  261,    0,    0,    0,
  620.     0,    0,    0,    0,    0,  211,  211,  211,  211,  347,
  621.     0,  211,  211,  211,  211,  211,  211,  211,  211,  211,
  622.   211,    0,    0,    0,    0,    0,    0,    0,    0,  211,
  623.   211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
  624.   211,  211,  211,  211,  211,  211,  211,  211,  211,    0,
  625.     0,  211,  211,  211,  211,  211,  211,  211,  211,  211,
  626.   211,  211,  211,  211,  211,    0,    0,    0,    0,    0,
  627.   211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
  628.     0,    0,  211,  211,  211,  211,    0,    0,  211,  211,
  629.     0,  211,    0,    0,  211,  211,  211,  211,  211,  211,
  630.   211,  211,  211,  211,  211,  210,    0,    0,  211,  211,
  631.   211,  211,  230,  230,  230,  230,    0,    0,  230,  230,
  632.   230,  230,  230,  230,  230,  230,  230,  230,    0,    0,
  633.     0,    0,    0,    0,    0,    0,  230,  230,  230,  230,
  634.   230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
  635.   230,  230,  230,  230,  230,  230,    0,    0,  230,  230,
  636.   230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
  637.   230,  230,    0,    0,    0,    0,    0,  230,  230,  230,
  638.   230,  230,  230,  230,  230,  230,  230,  232,    0,  230,
  639.   230,  230,  230,    0,  203,  230,  230,  203,  230,    0,
  640.     0,  230,  230,  230,  230,  230,  230,  230,  230,  230,
  641.   230,  230,    0,    0,    0,  230,  230,  230,  230,    0,
  642.   232,   52,   53,    0,    0,    0,    0,  232,  232,    0,
  643.     0,  232,    0,    0,   52,   53,    0,    0,    0,    0,
  644.   203,  203,  203,  203,  203,  203,  232,  232,    0,  232,
  645.     0,    0,    0,    0,    0,    0,   55,   56,   57,   58,
  646.    59,   60,   61,   62,   63,   64,   65,    0,    0,   55,
  647.    56,   57,   58,   59,   60,   61,   62,   63,   64,   65,
  648.   232,    0,    0,  232,   76,   77,   78,   79,    0,    0,
  649.     0,    0,    0,    0,  231,    0,    0,   76,   77,   78,
  650.    79,    0,   80,   81,   82,   83,   84,    0,    0,    0,
  651.     0,    0,  232,    0,    0,   80,   81,   82,   83,   84,
  652.     0,    0,    0,    0,    0,    0,    0,  231,    0,    0,
  653.     0,    0,    0,    0,  231,  231,    0,    0,  231,    0,
  654.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  655.     0,    0,    0,  231,  231,    0,  231,    0,    0,    0,
  656.     0,    0,    0,    0,    0,   55,   56,   57,   58,   59,
  657.    60,   61,   62,   63,   64,   65,    0,    0,    0,    0,
  658.     0,    0,    0,    0,    0,    0,    0,  231,    0,    0,
  659.   231,    0,    0,   76,   77,   78,   79,    0,    0,    0,
  660.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  661.     0,   80,   81,   82,   83,   84,    0,    0,    0,  231,
  662.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  663.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  664.     0,    0,    0,    0,  232,  232,  232,  232,    0,    0,
  665.   232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
  666.     0,    0,    0,    0,    0,    0,    0,    0,  232,  232,
  667.   232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
  668.   232,  232,  232,  232,  232,  232,  232,  232,    0,    0,
  669.   232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
  670.   232,  232,  232,  232,    0,    0,    0,    0,    0,  232,
  671.   232,  232,  232,  232,  232,  232,  232,  232,  232,    0,
  672.     0,  232,  232,  232,  232,    0,    0,  232,  232,    0,
  673.   232,    0,    0,  232,  232,  232,  232,  232,  232,  232,
  674.   232,  232,  232,  232,    0,    0,    0,  232,  232,  232,
  675.   232,  231,  231,  231,  231,    0,    0,  231,  231,  231,
  676.   231,  231,  231,  231,  231,  231,  231,    0,    0,    0,
  677.     0,    0,    0,    0,    0,  231,  231,  231,  231,  231,
  678.   231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
  679.   231,  231,  231,  231,  231,    0,    0,  231,  231,  231,
  680.   231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
  681.   231,    0,    0,    0,    0,    0,  231,  231,  231,  231,
  682.   231,  231,  231,  231,  231,  231,  229,    0,  231,  231,
  683.   231,  231,    0,    0,  231,  231,    0,  231,    0,    0,
  684.   231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
  685.   231,    0,    0,    0,  231,  231,  231,  231,    0,  229,
  686.     0,    0,    0,    0,    0,    0,  229,  229,    0,    0,
  687.   229,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  688.     0,    0,    0,    0,    0,  229,  229,    0,  229,    0,
  689.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  690.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  691.     0,    0,    0,    0,    0,    0,    0,    0,    0,  229,
  692.     0,    0,  229,    0,    0,    0,    0,    0,    0,    0,
  693.     0,    0,    0,  143,    0,    0,    0,    0,    0,    0,
  694.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  695.     0,  229,    0,    0,    0,    0,    0,    0,    0,    0,
  696.     0,    0,    0,    0,    0,    0,  143,    0,    0,    0,
  697.     0,    0,    0,  143,  143,    0,  143,  143,  143,    0,
  698.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  699.     0,    0,  143,    0,    0,  143,    0,    0,    0,    0,
  700.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  701.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  702.     0,    0,    0,    0,    0,    0,  143,    0,    0,  143,
  703.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  704.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  705.     0,    0,    0,    0,    0,    0,    0,    0,  143,    0,
  706.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  707.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  708.     0,    0,    0,  229,  229,  229,  229,    0,    0,  229,
  709.   229,  229,  229,  229,  229,  229,  229,  229,  229,    0,
  710.     0,    0,    0,    0,    0,    0,    0,  229,  229,  229,
  711.   229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
  712.   229,  229,  229,  229,  229,  229,  229,    0,    0,  229,
  713.   229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
  714.   229,  229,  229,    0,    0,    0,    0,    0,  229,  229,
  715.   229,  229,  229,  229,  229,  229,  229,  229,    0,    0,
  716.   229,  229,  229,  229,    0,    0,  229,  229,    0,  229,
  717.     0,    0,  229,  229,  229,  229,  229,  229,  229,  229,
  718.   229,  229,  229,    0,    0,    0,  229,  229,  229,  229,
  719.   143,  143,  143,  143,    0,    0,  143,    0,  143,  143,
  720.   143,  143,  143,  143,  143,  143,    0,    0,    0,    0,
  721.     0,    0,    0,    0,  143,  143,  143,  143,  143,  143,
  722.   143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
  723.   143,  143,  143,    0,    0,    0,    0,  143,  143,  143,
  724.   143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
  725.   143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
  726.   143,  143,  143,  143,  143,  234,    0,  143,  143,  143,
  727.   143,    0,    0,  143,  143,    0,    0,    0,    0,    0,
  728.     0,    0,    0,    0,    0,  143,  143,  143,  143,  143,
  729.     0,    0,    0,  143,  143,  143,  143,    0,  234,    0,
  730.     0,    0,    0,    0,    0,  234,  234,    0,    0,  234,
  731.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  732.     0,    0,    0,    0,  234,    0,    0,    0,    0,    0,
  733.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  734.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  735.     0,    0,    0,    0,    0,    0,    0,    0,  234,    0,
  736.     0,  234,    0,    0,    0,    0,    0,    0,    0,    0,
  737.     0,    0,  233,    0,    0,    0,    0,    0,    0,    0,
  738.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  739.   234,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  740.     0,    0,    0,    0,    0,  233,    0,    0,    0,    0,
  741.     0,    0,  233,  233,    0,    0,  233,    0,    0,    0,
  742.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  743.     0,  233,    0,    0,    0,    0,    0,    0,    0,    0,
  744.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  745.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  746.     0,    0,    0,    0,    0,  233,    0,    0,  233,    0,
  747.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  748.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  749.     0,    0,    0,    0,    0,    0,    0,  233,    0,    0,
  750.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  751.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  752.     0,    0,  234,  234,  234,  234,    0,    0,  234,  234,
  753.   234,  234,  234,  234,  234,  234,  234,  234,    0,    0,
  754.     0,    0,    0,    0,    0,    0,  234,  234,  234,  234,
  755.   234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
  756.   234,  234,  234,  234,  234,  234,    0,    0,  234,  234,
  757.   234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
  758.   234,  234,    0,    0,    0,    0,    0,  234,  234,  234,
  759.   234,  234,  234,  234,  234,  234,  234,    0,    0,  234,
  760.   234,  234,  234,    0,    0,  234,  234,    0,  234,    0,
  761.     0,  234,  234,  234,  234,    0,    0,  234,  234,  234,
  762.   234,  234,    0,    0,    0,  234,  234,  234,  234,  233,
  763.   233,  233,  233,    0,    0,  233,  233,  233,  233,  233,
  764.   233,  233,  233,  233,  233,    0,    0,    0,    0,    0,
  765.     0,    0,    0,  233,  233,  233,  233,  233,  233,  233,
  766.   233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
  767.   233,  233,  233,    0,    0,  233,  233,  233,  233,  233,
  768.   233,  233,  233,  233,  233,  233,  233,  233,  233,    0,
  769.     0,    0,    0,    0,  233,  233,  233,  233,  233,  233,
  770.   233,  233,  233,  233,  144,    0,  233,  233,  233,  233,
  771.     0,    0,  233,  233,    0,  233,    0,    0,  233,  233,
  772.   233,  233,    0,    0,  233,  233,  233,  233,  233,    0,
  773.     0,    0,  233,  233,  233,  233,    0,  144,    0,    0,
  774.     0,    0,    0,    0,  144,  144,    0,  144,  144,  144,
  775.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  776.     0,    0,    0,  144,    0,    0,  144,    0,    0,    0,
  777.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  778.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  779.     0,    0,    0,    0,    0,    0,    0,  144,    0,    0,
  780.   144,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  781.     0,  235,    0,    0,    0,    0,    0,    0,    0,    0,
  782.     0,    0,    0,    0,    0,    0,    0,    0,    0,  144,
  783.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  784.     0,    0,    0,    0,  235,    0,    0,    0,    0,    0,
  785.     0,  235,  235,    0,    0,  235,    0,    0,    0,    0,
  786.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  787.   235,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  788.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  789.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  790.     0,    0,    0,    0,  235,    0,    0,  235,    0,    0,
  791.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  792.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  793.     0,    0,    0,    0,    0,    0,  235,    0,    0,    0,
  794.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  795.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  796.     0,  144,  144,  144,  144,    0,    0,  144,    0,  144,
  797.   144,  144,  144,  144,  144,  144,  144,    0,    0,    0,
  798.     0,    0,    0,    0,    0,  144,  144,  144,  144,  144,
  799.   144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
  800.   144,  144,  144,  144,    0,    0,    0,    0,  144,  144,
  801.   144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
  802.   144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
  803.   144,  144,  144,  144,  144,  144,    0,    0,  144,  144,
  804.   144,  144,    0,    0,  144,  144,    0,    0,    0,    0,
  805.     0,    0,    0,    0,    0,    0,  144,  144,  144,  144,
  806.   144,    0,    0,    0,  144,  144,  144,  144,  235,  235,
  807.   235,  235,    0,    0,  235,  235,  235,  235,  235,  235,
  808.   235,  235,  235,  235,    0,    0,    0,    0,    0,    0,
  809.     0,    0,  235,  235,  235,  235,  235,  235,  235,  235,
  810.   235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
  811.   235,  235,    0,    0,  235,  235,  235,  235,  235,  235,
  812.   235,  235,  235,  235,  235,  235,  235,  235,    0,    0,
  813.     0,    0,    0,  235,  235,  235,  235,  235,  235,  235,
  814.   235,  235,  235,  236,    0,  235,  235,  235,  235,    0,
  815.     0,  235,  235,    0,  235,    0,    0,  235,  235,    0,
  816.     0,    0,    0,  235,  235,  235,  235,  235,    0,    0,
  817.     0,  235,  235,  235,  235,    0,  236,    0,    0,    0,
  818.     0,    0,    0,  236,  236,    0,    0,  236,    0,    0,
  819.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  820.     0,    0,  236,    0,    0,    0,    0,    0,    0,    0,
  821.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  822.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  823.     0,    0,    0,    0,    0,    0,  236,    0,    0,  236,
  824.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  825.   130,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  826.     0,    0,    0,    0,    0,    0,    0,    0,  236,    0,
  827.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  828.     0,    0,    0,  130,    0,    0,    0,    0,    0,    0,
  829.   130,  130,    0,  130,  130,  130,    0,    0,    0,    0,
  830.     0,    0,    0,    0,    0,    0,    0,    0,    0,  130,
  831.     0,    0,  130,    0,    0,    0,    0,    0,    0,    0,
  832.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  833.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  834.     0,    0,    0,  130,    0,    0,  130,    0,    0,    0,
  835.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  836.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  837.     0,    0,    0,    0,    0,  130,    0,    0,    0,    0,
  838.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  839.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  840.   236,  236,  236,  236,    0,    0,  236,  236,  236,  236,
  841.   236,  236,  236,  236,  236,  236,    0,    0,    0,    0,
  842.     0,    0,    0,    0,  236,  236,  236,  236,  236,  236,
  843.   236,  236,  236,  236,  236,  236,  236,  236,  236,  236,
  844.   236,  236,  236,  236,    0,    0,  236,  236,  236,  236,
  845.   236,  236,  236,  236,  236,  236,  236,  236,  236,  236,
  846.     0,    0,    0,    0,    0,  236,  236,  236,  236,  236,
  847.   236,  236,  236,  236,  236,    0,    0,  236,  236,  236,
  848.   236,    0,    0,  236,  236,    0,  236,    0,    0,    0,
  849.   236,    0,    0,    0,    0,  236,  236,  236,  236,  236,
  850.     0,    0,    0,  236,  236,  236,  236,  130,  130,  130,
  851.   130,    0,    0,  130,    0,  130,  130,  130,  130,  130,
  852.   130,  130,  130,    0,    0,    0,    0,    0,    0,    0,
  853.     0,  130,  130,  130,  130,  130,  130,  130,  130,  130,
  854.   130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
  855.     0,    0,    0,    0,  130,  130,  130,  130,  130,  130,
  856.   130,  130,  130,  130,  130,  130,  130,    0,    0,    0,
  857.     0,    0,  130,  130,  130,  130,  130,  130,  130,  130,
  858.   130,  130,  135,    0,  130,  130,  130,  130,    0,    0,
  859.   130,  130,    0,    0,    0,    0,    0,    0,    0,    0,
  860.     0,    0,  130,  130,  130,  130,  130,    0,    0,    0,
  861.   130,  130,  130,  130,    0,  135,    0,    0,    0,    0,
  862.     0,    0,  135,  135,    0,    0,  135,    0,    0,    0,
  863.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  864.     0,  135,    0,    0,  135,    0,    0,    0,    0,    0,
  865.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  866.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  867.     0,    0,    0,    0,    0,  135,    0,    0,  135,    0,
  868.     0,    0,    0,    0,    0,    0,    0,    0,    0,  139,
  869.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  870.     0,    0,    0,    0,    0,    0,    0,  135,    0,    0,
  871.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  872.     0,    0,  139,    0,    0,    0,    0,    0,    0,  139,
  873.   139,    0,    0,  139,    0,    0,    0,    0,    0,    0,
  874.     0,    0,    0,    0,    0,    0,    0,    0,  139,    0,
  875.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  876.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  877.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  878.     0,    0,  139,    0,    0,  139,    0,    0,    0,    0,
  879.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  880.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  881.     0,    0,    0,    0,  139,    0,    0,    0,    0,    0,
  882.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  883.     0,    0,    0,    0,    0,    0,    0,    0,    0,  135,
  884.   135,  135,  135,    0,    0,  135,    0,  135,  135,  135,
  885.   135,  135,  135,  135,  135,    0,    0,    0,    0,    0,
  886.     0,    0,    0,  135,  135,  135,  135,  135,  135,  135,
  887.   135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
  888.   135,  135,    0,    0,    0,    0,  135,  135,  135,  135,
  889.   135,  135,  135,  135,  135,  135,  135,  135,  135,    0,
  890.     0,    0,    0,    0,  135,  135,  135,  135,  135,  135,
  891.   135,  135,  135,  135,    0,    0,  135,  135,  135,  135,
  892.   260,    0,  135,  135,    0,    0,  261,    0,    0,    0,
  893.     0,    0,    0,    0,  135,  135,  135,  135,  135,    0,
  894.     0,    0,  135,  135,  135,  135,  139,  139,  139,  139,
  895.     0,    0,  139,    0,  139,  139,  139,  139,  139,  139,
  896.   139,  139,    0,    0,    0,    0,    0,    0,    0,    0,
  897.   139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
  898.   139,  139,  139,  139,  139,  139,  139,  139,  139,    0,
  899.     0,    0,    0,  139,  139,  139,  139,  139,  139,  139,
  900.   139,  139,  139,  139,  139,  139,   88,    0,    0,    0,
  901.     0,  139,  139,  139,  139,  139,  139,  139,  139,  139,
  902.   139,    0,    0,  139,  139,  139,  139,    0,    0,  139,
  903.   139,    0,    0,    0,    0,    0,    0,    0,    0,   88,
  904.     0,  139,  139,  139,  139,  139,   88,    0,    0,  139,
  905.   139,  139,  139,    0,    0,    0,    0,    0,    0,    0,
  906.     0,    0,    0,    0,    0,   88,    0,    0,    0,    0,
  907.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  908.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  909.     0,    0,    0,    0,    0,    0,    0,    0,    0,   88,
  910.     0,    0,   88,    0,    0,    0,    0,    0,    0,    0,
  911.     0,    0,    0,   90,    0,    0,    0,    0,    0,    0,
  912.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  913.     0,   88,    0,    0,    0,    0,    0,  257,    0,    0,
  914.     0,    0,    0,  258,    0,    0,   90,    0,  259,    0,
  915.     0,   52,   53,   90,    0,    0,    0,    0,    0,    0,
  916.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  917.     0,    0,   90,    0,    0,    0,    0,    0,    0,    0,
  918.     0,    0,    0,    0,    0,    0,   55,   56,   57,   58,
  919.    59,   60,   61,   62,   63,   64,   65,    0,    0,    0,
  920.     0,    0,    0,    0,    0,    0,   90,    0,    0,   90,
  921.     0,    0,    0,    0,   76,   77,   78,   79,    0,    0,
  922.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  923.     0,    0,   80,   81,   82,   83,   84,    0,   90,    0,
  924.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  925.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  926.     0,    0,    0,   88,   88,   88,   88,    0,    0,   88,
  927.     0,   88,   88,   88,   88,   88,   88,   88,   88,    0,
  928.     0,    0,    0,    0,    0,    0,    0,   88,   88,   88,
  929.    88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
  930.    88,   88,   88,   88,   88,   88,    0,    0,    0,    0,
  931.     0,   88,   88,   88,   88,   88,   88,   88,   88,   88,
  932.    88,   88,   88,    0,    0,   32,    0,    0,   88,   88,
  933.    88,   88,   88,   88,   88,   88,   88,   88,    0,    0,
  934.    88,   88,   88,   88,    0,    0,   88,   88,    0,    0,
  935.     0,    0,    0,    0,    0,    0,    0,   31,   88,   88,
  936.    88,   88,   88,    0,    0,    0,   88,   88,   88,   88,
  937.    90,   90,   90,   90,    0,    0,   90,    0,   90,   90,
  938.    90,   90,   90,   90,   90,   90,    0,    0,    0,    0,
  939.     0,    0,    0,    0,   90,   90,   90,   90,   90,   90,
  940.    90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
  941.    90,   90,   90,    0,    0,    0,    0,    0,   90,   90,
  942.    90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
  943.    92,    0,    0,    0,    0,   90,   90,   90,   90,   90,
  944.    90,   90,   90,   90,   90,    0,    0,   90,   90,   90,
  945.    90,    0,    0,   90,   90,    0,    0,    0,    0,    0,
  946.     0,    0,    0,   92,    0,   90,   90,   90,   90,   90,
  947.    92,    0,    0,   90,   90,   90,   90,    0,    0,    0,
  948.     0,    0,    0,    0,    0,    0,    0,    0,    0,   92,
  949.     0,    6,    7,    0,    8,    9,    0,    0,    0,    0,
  950.     0,    0,    0,   10,   11,   12,   13,   14,   15,   16,
  951.    17,   18,   19,   20,   21,    0,    0,    0,    0,    0,
  952.     0,    0,    0,   92,    0,    0,   92,    0,    0,    0,
  953.     0,    0,    0,    0,    0,    0,    0,   96,    0,    0,
  954.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  955.     0,    0,    0,    0,    0,   92,    0,    0,    0,    0,
  956.     0,    0,    0,    0,    0,    0,   22,    0,    0,    0,
  957.    96,    0,   23,   24,    0,    0,   25,   96,   26,    0,
  958.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  959.     0,   27,    0,   28,    0,    0,   96,   29,   30,    0,
  960.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  961.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  962.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  963.    96,    0,    0,   96,    0,    0,    0,    0,    0,    0,
  964.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  965.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  966.     0,    0,   96,    0,    0,    0,    0,    0,    0,    0,
  967.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  968.     0,    0,    0,    0,    0,    0,    0,   92,   92,   92,
  969.    92,    0,    0,   92,    0,   92,   92,   92,   92,   92,
  970.    92,   92,   92,    0,    0,    0,    0,    0,    0,    0,
  971.     0,   92,   92,   92,   92,   92,   92,   92,   92,   92,
  972.    92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
  973.     0,    0,    0,    0,    0,   92,   92,   92,   92,   92,
  974.    92,   92,   92,   92,   92,   92,   92,    0,    0,    6,
  975.     0,    0,   92,   92,   92,   92,   92,   92,   92,   92,
  976.    92,   92,    0,    0,   92,   92,   92,   92,    0,    0,
  977.    92,   92,    0,    0,    0,    0,    0,    0,    0,    0,
  978.     0,    6,   92,   92,   92,   92,   92,    0,    0,    0,
  979.    92,   92,   92,   92,   96,   96,   96,   96,    0,    0,
  980.    96,    0,   96,   96,   96,   96,   96,   96,   96,   96,
  981.     0,    0,    0,    0,    0,    0,    0,    0,   96,   96,
  982.    96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
  983.    96,   96,   96,   96,   96,   96,   96,    0,    0,    0,
  984.     0,    0,   96,   96,   96,   96,   96,   96,   96,   96,
  985.    96,   96,   96,   96,   94,    0,    0,    0,    0,   96,
  986.    96,   96,   96,   96,   96,   96,   96,   96,   96,    0,
  987.     0,   96,   96,   96,   96,    0,    0,   96,   96,    0,
  988.     0,    0,    0,    0,    0,    0,    0,   94,    0,   96,
  989.    96,   96,   96,   96,   94,    0,    0,   96,   96,   96,
  990.    96,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  991.     0,    0,    0,   94,    0,    6,    6,    0,    6,    6,
  992.     0,    0,    0,    0,    0,    0,    0,    6,    6,    6,
  993.     6,    6,    6,    6,    6,    6,    6,    6,    6,    0,
  994.     0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
  995.    94,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  996.     0,   84,    0,    0,    0,    0,    0,    0,    0,    0,
  997.     0,    0,    0,    0,    0,    0,    0,    0,    0,   94,
  998.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  999.     6,    0,    0,    0,   84,    0,    6,    6,    0,    0,
  1000.     6,   84,    6,    0,    0,    0,    0,    0,    0,    0,
  1001.     0,    0,    0,    0,    0,    6,    0,    6,    0,    0,
  1002.    84,    6,    6,    0,    0,    0,    0,    0,    0,    0,
  1003.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1004.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1005.     0,    0,    0,    0,   84,    0,    0,   84,    0,    0,
  1006.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1007.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1008.     0,    0,    0,    0,    0,    0,   84,    0,    0,    0,
  1009.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1010.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1011.     0,   94,   94,   94,   94,    0,    0,   94,    0,   94,
  1012.    94,   94,   94,   94,   94,   94,   94,    0,    0,    0,
  1013.     0,    0,    0,    0,    0,   94,   94,   94,   94,   94,
  1014.    94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
  1015.    94,   94,   94,   94,    0,    0,    0,    0,    0,   94,
  1016.    94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
  1017.    94,    0,    0,    0,    0,    0,   94,   94,   94,   94,
  1018.    94,   94,   94,   94,   94,   94,    0,    0,   94,   94,
  1019.    94,   94,    0,    0,   94,   94,    0,    0,    0,    0,
  1020.     0,    0,    0,    0,    0,    0,   94,   94,   94,   94,
  1021.    94,    0,    0,    0,   94,   94,   94,   94,   84,   84,
  1022.    84,   84,    0,    0,   84,    0,   84,   84,   84,   84,
  1023.    84,   84,   84,   84,    0,    0,    0,    0,    0,    0,
  1024.     0,    0,   84,   84,   84,   84,   84,   84,   84,   84,
  1025.    84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
  1026.    84,    0,    0,    0,    0,    0,   84,   84,   84,   84,
  1027.    84,   84,   84,   84,   84,   84,   84,   84,   85,    0,
  1028.     0,    0,    0,   84,   84,   84,   84,   84,   84,   84,
  1029.    84,   84,   84,    0,    0,   84,   84,   84,   84,    0,
  1030.     0,   84,   84,    0,    0,    0,    0,    0,    0,    0,
  1031.     0,   85,    0,   84,   84,   84,   84,   84,   85,    0,
  1032.     0,   84,   84,   84,   84,    0,    0,    0,    0,    0,
  1033.     0,    0,    0,    0,    0,    0,    0,   85,    0,    0,
  1034.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1035.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1036.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1037.     0,   85,    0,    0,   85,    0,    0,    0,    0,    0,
  1038.     0,    0,    0,    0,    0,   86,    0,    0,    0,    0,
  1039.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1040.     0,    0,    0,   85,    0,    0,    0,    0,    0,    0,
  1041.     0,    0,    0,    0,    0,    0,    0,    0,   86,    0,
  1042.     0,    0,    0,    0,    0,   86,    0,    0,    0,    0,
  1043.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1044.     0,    0,    0,    0,   86,    0,    0,    0,    0,    0,
  1045.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1046.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1047.     0,    0,    0,    0,    0,    0,    0,    0,   86,    0,
  1048.     0,   86,    0,    0,    0,    0,    0,    0,    0,    0,
  1049.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1050.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1051.    86,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1052.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1053.     0,    0,    0,    0,    0,   85,   85,   85,   85,    0,
  1054.     0,   85,    0,   85,   85,   85,   85,   85,   85,   85,
  1055.    85,    0,    0,    0,    0,    0,    0,    0,    0,   85,
  1056.    85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
  1057.    85,   85,   85,   85,   85,   85,   85,   85,    0,    0,
  1058.     0,    0,    0,   85,   85,   85,   85,   85,   85,   85,
  1059.    85,   85,   85,   85,   85,    0,    0,    0,    0,    0,
  1060.    85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
  1061.     0,    0,   85,   85,   85,   85,    0,    0,   85,   85,
  1062.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1063.    85,   85,   85,   85,   85,    0,    0,    0,   85,   85,
  1064.    85,   85,   86,   86,   86,   86,    0,    0,   86,    0,
  1065.    86,   86,   86,   86,   86,   86,   86,   86,    0,    0,
  1066.     0,    0,    0,    0,    0,    0,   86,   86,   86,   86,
  1067.    86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
  1068.    86,   86,   86,   86,   86,    0,    0,    0,    0,    0,
  1069.    86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
  1070.    86,   86,   87,    0,    0,    0,    0,   86,   86,   86,
  1071.    86,   86,   86,   86,   86,   86,   86,    0,    0,   86,
  1072.    86,   86,   86,    0,    0,   86,   86,    0,    0,    0,
  1073.     0,    0,    0,    0,    0,   87,    0,   86,   86,   86,
  1074.    86,   86,   87,    0,    0,   86,   86,   86,   86,    0,
  1075.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1076.     0,   87,    0,    0,    0,    0,    0,    0,    0,    0,
  1077.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1078.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1079.     0,    0,    0,    0,    0,   87,    0,    0,   87,    0,
  1080.     0,    0,    0,    0,    0,    0,    0,    0,    0,   97,
  1081.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1082.     0,    0,    0,    0,    0,    0,    0,   87,    0,    0,
  1083.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1084.     0,    0,   97,    0,    0,    0,    0,    0,    0,   97,
  1085.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1086.     0,    0,    0,    0,    0,    0,    0,    0,   97,    0,
  1087.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1088.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1089.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1090.     0,    0,   97,    0,    0,   97,    0,    0,    0,    0,
  1091.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1092.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1093.     0,    0,    0,    0,   97,    0,    0,    0,    0,    0,
  1094.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1095.     0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
  1096.    87,   87,   87,    0,    0,   87,    0,   87,   87,   87,
  1097.    87,   87,   87,   87,   87,    0,    0,    0,    0,    0,
  1098.     0,    0,    0,   87,   87,   87,   87,   87,   87,   87,
  1099.    87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
  1100.    87,   87,    0,    0,    0,    0,    0,   87,   87,   87,
  1101.    87,   87,   87,   87,   87,   87,   87,   87,   87,    0,
  1102.     0,    0,    0,    0,   87,   87,   87,   87,   87,   87,
  1103.    87,   87,   87,   87,    0,    0,   87,   87,   87,   87,
  1104.     0,    0,   87,   87,    0,    0,    0,    0,    0,    0,
  1105.     0,    0,    0,    0,   87,   87,   87,   87,   87,    0,
  1106.     0,    0,   87,   87,   87,   87,   97,   97,   97,   97,
  1107.     0,    0,   97,    0,   97,   97,   97,   97,   97,   97,
  1108.    97,   97,    0,    0,    0,    0,    0,    0,    0,    0,
  1109.    97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
  1110.    97,   97,   97,   97,   97,   97,   97,   97,   97,    0,
  1111.     0,    0,    0,    0,   97,   97,   97,   97,   97,   97,
  1112.    97,   97,   97,   97,   97,   97,   98,    0,    0,    0,
  1113.     0,   97,   97,   97,   97,   97,   97,   97,   97,   97,
  1114.    97,    0,    0,   97,   97,   97,   97,    0,    0,   97,
  1115.    97,    0,    0,    0,    0,    0,    0,    0,    0,   98,
  1116.     0,   97,   97,   97,   97,   97,   98,    0,    0,   97,
  1117.    97,   97,   97,    0,    0,    0,    0,    0,    0,    0,
  1118.     0,    0,    0,    0,    0,   98,    0,    0,    0,    0,
  1119.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1120.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1121.     0,    0,    0,    0,    0,    0,    0,    0,    0,   98,
  1122.     0,    0,   98,    0,    0,    0,    0,    0,    0,    0,
  1123.     0,    0,    0,   99,    0,    0,    0,    0,    0,    0,
  1124.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1125.     0,   98,    0,    0,    0,    0,    0,    0,    0,    0,
  1126.     0,    0,    0,    0,    0,    0,   99,    0,    0,    0,
  1127.     0,    0,    0,   99,    0,    0,    0,    0,    0,    0,
  1128.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1129.     0,    0,   99,    0,    0,    0,    0,    0,    0,    0,
  1130.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1131.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1132.     0,    0,    0,    0,    0,    0,   99,    0,    0,   99,
  1133.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1134.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1135.     0,    0,    0,    0,    0,    0,    0,    0,   99,    0,
  1136.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1137.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1138.     0,    0,    0,   98,   98,   98,   98,    0,    0,   98,
  1139.     0,   98,   98,   98,   98,   98,   98,   98,   98,    0,
  1140.     0,    0,    0,    0,    0,    0,    0,   98,   98,   98,
  1141.    98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
  1142.    98,   98,   98,   98,   98,   98,    0,    0,    0,    0,
  1143.     0,   98,   98,   98,   98,   98,   98,   98,   98,   98,
  1144.    98,   98,   98,    0,    0,    0,    0,    0,   98,   98,
  1145.    98,   98,   98,   98,   98,   98,   98,   98,    0,    0,
  1146.    98,   98,   98,   98,    0,    0,   98,   98,    0,    0,
  1147.     0,    0,    0,    0,    0,    0,    0,    0,   98,   98,
  1148.    98,   98,   98,    0,    0,    0,   98,   98,   98,   98,
  1149.    99,   99,   99,   99,    0,    0,   99,    0,   99,   99,
  1150.    99,   99,   99,   99,   99,   99,    0,    0,    0,    0,
  1151.     0,    0,    0,    0,   99,   99,   99,   99,   99,   99,
  1152.    99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
  1153.    99,   99,   99,    0,    0,    0,    0,    0,   99,   99,
  1154.    99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
  1155.   104,    0,    0,    0,    0,   99,   99,   99,   99,   99,
  1156.    99,   99,   99,   99,   99,    0,    0,   99,   99,   99,
  1157.    99,    0,    0,   99,   99,    0,    0,    0,    0,    0,
  1158.     0,    0,    0,  104,    0,   99,   99,   99,   99,   99,
  1159.   104,    0,    0,   99,   99,   99,   99,    0,    0,    0,
  1160.     0,    0,    0,    0,    0,    0,    0,    0,    0,  104,
  1161.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1162.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1163.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1164.     0,    0,    0,  104,    0,    0,  104,    0,    0,    0,
  1165.     0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
  1166.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1167.     0,    0,    0,    0,    0,  104,    0,    0,    0,    0,
  1168.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1169.   106,    0,    0,    0,    0,    0,    0,  106,    0,    0,
  1170.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1171.     0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
  1172.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1173.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1174.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1175.   106,    0,    0,  106,    0,    0,    0,    0,    0,    0,
  1176.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1177.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1178.     0,    0,  106,    0,    0,    0,    0,    0,    0,    0,
  1179.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1180.     0,    0,    0,    0,    0,    0,    0,  104,  104,  104,
  1181.   104,    0,    0,  104,    0,  104,  104,  104,  104,  104,
  1182.   104,  104,  104,    0,    0,    0,    0,    0,    0,    0,
  1183.     0,  104,  104,  104,  104,  104,  104,  104,  104,  104,
  1184.   104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
  1185.     0,    0,    0,    0,    0,  104,  104,  104,  104,  104,
  1186.   104,  104,  104,  104,  104,  104,  104,    0,    0,    0,
  1187.     0,    0,  104,  104,  104,  104,  104,  104,  104,  104,
  1188.   104,  104,    0,    0,  104,  104,  104,  104,    0,    0,
  1189.   104,  104,    0,    0,    0,    0,    0,    0,    0,    0,
  1190.     0,    0,  104,  104,  104,  104,  104,    0,    0,    0,
  1191.   104,  104,  104,  104,  106,  106,  106,  106,    0,    0,
  1192.   106,    0,  106,  106,  106,  106,  106,  106,  106,  106,
  1193.     0,    0,    0,    0,    0,    0,    0,    0,  106,  106,
  1194.   106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
  1195.   106,  106,  106,  106,  106,  106,  106,    0,    0,    0,
  1196.     0,    0,  106,  106,  106,  106,  106,  106,  106,  106,
  1197.   106,  106,  106,  106,  110,    0,    0,    0,    0,  106,
  1198.   106,  106,  106,  106,  106,  106,  106,  106,  106,    0,
  1199.     0,  106,  106,  106,  106,    0,    0,  106,  106,    0,
  1200.     0,    0,    0,    0,    0,    0,    0,  110,    0,  106,
  1201.   106,  106,  106,  106,  110,    0,    0,  106,  106,  106,
  1202.   106,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1203.     0,    0,    0,  110,    0,    0,    0,    0,    0,    0,
  1204.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1205.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1206.     0,    0,    0,    0,    0,    0,    0,  110,    0,    0,
  1207.   110,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1208.     0,  123,    0,    0,    0,    0,    0,    0,    0,    0,
  1209.     0,    0,    0,    0,    0,    0,    0,    0,    0,  110,
  1210.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1211.     0,    0,    0,    0,  123,    0,    0,    0,    0,    0,
  1212.     0,  123,    0,    0,    0,    0,    0,    0,    0,    0,
  1213.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1214.   123,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1215.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1216.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1217.     0,    0,    0,    0,  123,    0,    0,  123,    0,    0,
  1218.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1219.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1220.     0,    0,    0,    0,    0,    0,  123,    0,    0,    0,
  1221.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1222.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1223.     0,  110,  110,  110,  110,    0,    0,  110,    0,  110,
  1224.   110,  110,  110,  110,  110,  110,  110,    0,    0,    0,
  1225.     0,    0,    0,    0,    0,  110,  110,  110,  110,  110,
  1226.   110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
  1227.   110,  110,  110,  110,    0,    0,    0,    0,    0,  110,
  1228.   110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
  1229.   110,    0,    0,    0,    0,    0,  110,  110,  110,  110,
  1230.   110,  110,  110,  110,  110,  110,    0,    0,  110,  110,
  1231.   110,  110,    0,    0,  110,  110,    0,    0,    0,    0,
  1232.     0,    0,    0,    0,    0,    0,  110,  110,  110,  110,
  1233.   110,    0,    0,    0,  110,  110,  110,  110,  123,  123,
  1234.   123,  123,    0,    0,  123,    0,  123,  123,  123,  123,
  1235.   123,  123,  123,  123,    0,    0,    0,    0,    0,    0,
  1236.     0,    0,  123,  123,  123,  123,  123,  123,  123,  123,
  1237.   123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
  1238.   123,    0,    0,    0,    0,    0,  123,  123,  123,  123,
  1239.   123,  123,  123,  123,  123,  123,  123,  123,  108,    0,
  1240.     0,    0,    0,  123,  123,  123,  123,  123,  123,  123,
  1241.   123,  123,  123,    0,    0,  123,  123,  123,  123,    0,
  1242.     0,  123,  123,    0,    0,    0,    0,    0,    0,    0,
  1243.     0,  108,    0,  123,  123,  123,  123,  123,  108,    0,
  1244.     0,  123,  123,  123,  123,    0,    0,    0,    0,    0,
  1245.     0,    0,    0,    0,    0,    0,    0,  108,    0,    0,
  1246.     0,    0,    0,    0,    0,    0,  237,    0,    0,    0,
  1247.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1248.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1249.     0,  108,    0,    0,  108,    0,    0,    0,    0,    0,
  1250.     0,    0,    0,  237,    0,  141,    0,  237,  237,  237,
  1251.   237,  237,    0,  237,    0,    0,    0,    0,    0,    0,
  1252.     0,    0,    0,  108,    0,  237,  237,    0,  237,    0,
  1253.     0,    0,    0,    0,    0,    0,    0,    0,  141,    0,
  1254.     0,    0,    0,    0,    0,  141,  141,    0,  141,  141,
  1255.   141,    0,    0,    0,    0,    0,    0,    0,    0,  237,
  1256.     0,    0,    0,    0,  141,    0,    0,  141,    0,    0,
  1257.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1258.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1259.     0,  237,    0,    0,    0,    0,    0,    0,  141,    0,
  1260.     0,  141,    0,    0,    0,    0,    0,    0,    0,    0,
  1261.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1262.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1263.   141,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1264.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1265.     0,    0,    0,    0,    0,  108,  108,  108,  108,    0,
  1266.     0,  108,    0,  108,  108,  108,  108,  108,  108,  108,
  1267.   108,    0,    0,    0,    0,    0,    0,    0,    0,  108,
  1268.   108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
  1269.   108,  108,  108,  108,  108,  108,  108,  108,    0,    0,
  1270.     0,    0,    0,  108,  108,  108,  108,  108,  108,  108,
  1271.   108,  108,  108,  108,  108,    0,    0,    0,    0,    0,
  1272.   108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
  1273.   237,    0,  108,  108,  108,  108,    0,    0,  108,  108,
  1274.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1275.   108,  108,  108,  108,  108,    0,  237,    0,  108,  108,
  1276.   108,  108,  141,  141,  141,  141,  237,    0,  141,  237,
  1277.   141,  141,  141,  141,  141,  141,  141,  141,    0,    0,
  1278.     0,    0,    0,    0,    0,    0,  141,  141,  141,  141,
  1279.   141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
  1280.   141,  141,  141,  141,  141,    0,    0,    0,    0,  141,
  1281.   141,  167,  237,  237,  237,  237,  237,  237,    0,    0,
  1282.     0,    0,  141,  141,  141,  141,  141,  141,  141,  141,
  1283.   141,  141,  141,  141,  141,  141,  141,    0,    0,    0,
  1284.     0,    0,    0,    0,  167,  141,  141,    0,    0,    0,
  1285.     0,  167,  167,    0,  229,  167,  167,    0,    0,    0,
  1286.     0,    0,    0,    0,    0,  141,  141,  141,  141,    0,
  1287.   167,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1288.     0,    0,    0,    0,    0,    0,    0,  229,    0,    0,
  1289.     0,    0,    0,    0,  229,  229,    0,    0,  229,    0,
  1290.     0,    0,    0,    0,  167,    0,    0,  167,    0,    0,
  1291.     0,    0,    0,  229,  229,    0,  229,    0,    0,    0,
  1292.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1293.     0,    0,    0,    0,    0,    0,  167,    0,    0,    0,
  1294.     0,    0,    0,    0,    0,    0,    0,  229,    0,    0,
  1295.   229,    0,    0,    0,    0,    0,    0,    0,  236,    0,
  1296.     0,   40,    0,    0,    0,    0,    0,    0,    0,    0,
  1297.     0,    0,    0,    0,    0,    0,    0,    0,    0,  229,
  1298.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1299.     0,    0,    0,    0,   40,    0,    0,    0,    0,  236,
  1300.     0,   40,  236,    0,    0,    0,    0,    0,    0,    0,
  1301.     0,    0,    0,    0,    0,    0,    0,  236,    0,    0,
  1302.    40,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1303.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1304.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1305.     0,  236,    0,    0,   40,    0,    0,   40,    0,    0,
  1306.     0,    0,    0,    0,    0,    0,    0,    0,  167,  167,
  1307.   167,  167,    0,    0,  167,    0,  167,  167,  167,  167,
  1308.   167,  167,    0,  236,    0,    0,   40,    0,    0,    0,
  1309.     0,    0,  167,  167,  167,  167,  167,  167,  167,  167,
  1310.   167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
  1311.   167,  229,  229,  229,  229,    0,  167,  229,    0,    0,
  1312.     0,    0,  229,    0,    0,  229,  229,    0,    0,    0,
  1313.     0,    0,    0,  167,  167,  167,  167,  167,  167,  167,
  1314.   167,  167,  167,    0,    0,    0,    0,    0,    0,    0,
  1315.     0,  167,  167,   42,    0,    0,    0,    0,    0,  229,
  1316.   229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
  1317.   229,  167,  167,  167,  167,    0,  229,  229,  229,  229,
  1318.   229,  229,  229,  229,  229,  229,   42,    0,  229,  229,
  1319.   229,  229,    0,   42,    0,    0,    0,    0,    0,    0,
  1320.   229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
  1321.   229,    0,   42,    0,    0,    0,    0,  229,   40,   40,
  1322.    40,   40,  236,    0,   40,    0,    0,    0,    0,   40,
  1323.     0,    0,   40,   40,    0,    0,    0,    0,    0,    0,
  1324.     0,    0,    0,    0,    0,    0,   42,    0,  236,   42,
  1325.     0,    0,   95,    0,    0,    0,    0,    0,  236,    0,
  1326.     0,  236,    0,    0,    0,    0,   40,   40,   40,   40,
  1327.    40,   40,   40,   40,   40,   40,   40,   40,   42,    0,
  1328.     0,    0,    0,   40,   40,   40,   40,   40,   40,   40,
  1329.    40,   40,   40,    0,    0,   40,   40,   40,   40,    0,
  1330.     0,    0,    0,    0,    0,  236,    0,    0,    0,    0,
  1331.     0,   95,    0,   40,   40,   40,   40,   40,    0,    0,
  1332.     0,    0,    0,    0,   40,    0,    0,    0,    0,    0,
  1333.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1334.     0,    0,    0,    0,    0,   95,    0,    0,    0,    0,
  1335.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1336.    93,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1337.     0,    0,    0,    0,    0,    0,    0,   95,    0,    0,
  1338.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1339.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1340.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1341.    42,   42,   42,   42,    0,    0,   42,    0,    0,   93,
  1342.     0,   42,    0,    0,   42,   42,    0,    0,    0,    0,
  1343.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1344.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1345.     0,    0,    0,   93,    0,    0,    0,    0,   42,   42,
  1346.    42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
  1347.    89,    0,    0,    0,    0,   42,   42,   42,   42,   42,
  1348.    42,   42,   42,   42,   42,   93,    0,   42,   42,   42,
  1349.    42,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1350.     0,    0,    0,    0,    0,   42,   42,   42,   42,   42,
  1351.    91,    0,   95,    0,    0,    0,   42,   95,   95,   95,
  1352.     0,   95,   95,   95,   95,    0,    0,    0,    0,   89,
  1353.     0,    0,    0,   95,   95,   95,   95,   95,   95,   95,
  1354.    95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
  1355.    95,   95,  188,    0,    0,    0,    0,    0,    0,    0,
  1356.     0,    0,    0,   89,    0,    0,    0,    0,    0,   91,
  1357.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1358.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1359.     0,    0,   95,   95,    0,   89,    0,    0,    0,    0,
  1360.     0,    0,    0,   91,    0,    0,    0,    0,    0,  103,
  1361.     0,    0,   95,   95,   95,   95,    0,    0,    0,    0,
  1362.    93,    0,    0,    0,    0,   93,   93,   93,    0,   93,
  1363.    93,   93,   93,    0,    0,   91,    0,    0,    0,    0,
  1364.     0,   93,   93,   93,   93,   93,   93,   93,   93,   93,
  1365.    93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
  1366.   189,    0,    0,    0,    0,    0,    0,    0,  103,    0,
  1367.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1368.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1369.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1370.    93,   93,  103,    0,    0,    0,    0,    0,    0,    0,
  1371.     0,    0,    0,    0,    0,    0,    0,    0,    0,  105,
  1372.    93,   93,   93,   93,    0,    0,    0,    0,    0,    0,
  1373.    89,    0,    0,    0,  103,   89,   89,   89,    0,   89,
  1374.    89,   89,   89,    0,    0,    0,    0,    0,    0,    0,
  1375.     0,   89,   89,   89,   89,   89,   89,   89,   89,   89,
  1376.    89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
  1377.    91,    0,    0,    0,    0,   91,   91,   91,  105,   91,
  1378.    91,   91,   91,    0,    0,    0,    0,    0,    0,    0,
  1379.     0,   91,   91,   91,   91,   91,   91,   91,   91,   91,
  1380.    91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
  1381.    89,   89,  105,    0,    0,    0,    0,    0,  109,    0,
  1382.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1383.    89,   89,   89,   89,    0,    0,    0,    0,    0,    0,
  1384.     0,    0,    0,    0,  105,    0,    0,    0,    0,    0,
  1385.    91,   91,    0,    0,    0,    0,    0,    0,  107,    0,
  1386.     0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
  1387.    91,   91,   91,   91,  103,  103,  103,  109,  103,  103,
  1388.   103,  103,    0,    0,    0,    0,    0,    0,    0,    0,
  1389.   103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
  1390.   103,  103,  103,  103,  103,  103,  103,  103,  103,    0,
  1391.     0,  109,    0,    0,    0,    0,    0,  107,    0,    0,
  1392.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1393.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1394.     0,    0,    0,  109,    0,    0,    0,    0,    0,  103,
  1395.   103,  107,    0,    0,    0,    0,    0,    0,    0,    0,
  1396.     0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
  1397.   103,  103,  103,    0,    0,    0,    0,    0,    0,  105,
  1398.     0,    0,    0,  107,  105,  105,  105,    0,  105,  105,
  1399.   105,  105,    0,    0,    0,    0,    0,    0,    0,    0,
  1400.   105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
  1401.   105,  105,  105,  105,  105,  105,  105,  105,  105,    0,
  1402.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1403.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1404.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1405.     0,    0,    0,    0,    0,    0,    0,    0,    0,  105,
  1406.   105,    0,   40,    0,    0,    0,    0,    0,    0,    0,
  1407.     0,    0,    0,    0,    0,    0,    0,    0,  109,  105,
  1408.   105,  105,  105,  109,  109,  109,    0,  109,  109,  109,
  1409.   109,    0,    0,    0,   32,    0,    0,    0,    0,  109,
  1410.   109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
  1411.   109,  109,  109,  109,  109,  109,  109,  109,  107,    0,
  1412.     0,    0,    0,  107,  107,  107,   31,  107,  107,  107,
  1413.   107,   80,    0,    0,    0,    0,    0,    0,    0,  107,
  1414.   107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
  1415.   107,  107,  107,  107,  107,  107,  107,  107,  109,  109,
  1416.     0,    0,    0,    0,   80,    0,    0,    0,    0,    0,
  1417.     0,   80,    0,    0,    0,    0,    0,    0,  109,  109,
  1418.   109,  109,    0,    0,    0,    0,    0,    0,    0,    0,
  1419.    80,    0,  146,    0,    0,    0,    0,    0,  107,  107,
  1420.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1421.     0,    0,    0,    0,    0,    0,    0,    0,  107,  107,
  1422.   107,  107,    0,    0,   80,    0,    0,   80,    0,    0,
  1423.     0,    0,    0,    0,    0,  146,    0,  146,  146,    0,
  1424.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1425.     0,  146,    0,    0,    0,    0,   80,    0,    0,    0,
  1426.     6,    7,    0,    8,    9,    0,    0,    0,    0,    0,
  1427.     0,    0,   10,   11,   12,   13,   14,   15,   16,   17,
  1428.    18,   19,   20,   21,    0,  146,    0,    0,    0,    0,
  1429.     0,    0,    0,    0,    0,   88,    0,    0,    0,    0,
  1430.     0,    0,   85,    0,    0,    0,    0,   87,    0,    0,
  1431.     0,    0,    0,    0,    0,    0,    0,  146,    0,    0,
  1432.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1433.     0,    0,    0,    0,    0,   22,    0,    0,    0,    0,
  1434.     0,   23,   24,    0,    0,   25,    0,   26,    0,    0,
  1435.     0,    0,    0,   32,    0,    0,    0,    0,   86,    0,
  1436.    27,    0,   28,    0,    0,    0,   29,   30,    0,    0,
  1437.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1438.     0,    0,    0,    0,    0,   31,    0,    0,   80,   80,
  1439.    80,    0,    0,    0,   80,    0,   80,   80,   80,   80,
  1440.    80,   80,   80,   80,    0,    0,    0,    0,    0,    0,
  1441.     0,    0,   80,   80,   80,   80,   80,   80,   80,   80,
  1442.    80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
  1443.    80,    0,    0,    0,    0,    0,   80,   80,   80,   80,
  1444.    80,   80,   80,   80,   80,   80,   80,   80,    0,    0,
  1445.     0,    0,    0,   80,   80,   80,   80,   80,   80,   80,
  1446.    80,   80,   80,  146,  146,   80,   80,   80,   80,    0,
  1447.     0,   80,   80,    0,    0,    0,    0,    0,    0,    0,
  1448.     0,    0,    0,   80,   80,   80,   80,   80,    0,    0,
  1449.     0,   80,   80,   80,    0,    0,    0,    0,  146,  146,
  1450.   146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
  1451.   146,  146,  146,  146,    0,    0,    0,    0,    0,  275,
  1452.   276,   49,    8,    9,    0,   50,  146,  146,  146,  146,
  1453.    51,   10,   11,  277,  278,   14,   15,   16,   17,   18,
  1454.    19,   20,   21,    0,  146,  146,  146,  146,  146,    6,
  1455.     0,    0,    0,    0,    0,    0,    6,    0,    0,    0,
  1456.     0,    6,    0,    0,    0,    0,    0,   54,   55,   56,
  1457.    57,   58,   59,   60,   61,   62,   63,   64,   65,    0,
  1458.     0,    0,    0,    0,   66,   67,   68,   69,   70,   71,
  1459.    72,   73,   74,   75,   22,    0,   76,   77,   78,   79,
  1460.    23,   24,    0,    0,   25,    0,   26,    6,    0,    0,
  1461.     0,    0,    6,    0,   80,   81,   82,   83,   84,   27,
  1462.     0,   28,    0,    0,    0,   29,   30,    0,    0,    0,
  1463.     0,    0,    0,    0,    0,    0,    0,    0,    0,    6,
  1464.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1465.     0,    0,    0,    0,    0,    0,    0,   88,    0,    0,
  1466.     0,    0,    0,    0,  103,    0,    0,    0,    0,   87,
  1467.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1468.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1469.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1470.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1471.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1472.    86,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1473.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1474.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1475.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1476.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1477.     0,    0,    0,    6,    6,    6,    6,    6,    0,    6,
  1478.     0,    0,    0,    0,    6,    6,    6,    6,    6,    6,
  1479.     6,    6,    6,    6,    6,    6,    6,    0,  104,    0,
  1480.     0,    0,    0,    0,    0,  103,  295,    0,    0,    0,
  1481.    87,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1482.     0,    6,    6,    6,    6,    6,    6,    6,    6,    6,
  1483.     6,    6,    6,    0,    0,    0,    0,    0,    6,    6,
  1484.     6,    6,    6,    6,    6,    6,    6,    6,    6,    0,
  1485.     6,    6,    6,    6,    6,    6,    0,    0,    6,    0,
  1486.     6,   86,    0,    0,    0,    0,    0,    0,    6,    6,
  1487.     6,    6,    6,    6,    0,    6,    0,    0,    0,    6,
  1488.     6,   47,   48,   49,    8,    0,    0,   50,    0,  119,
  1489.   120,  121,   51,  122,  123,  124,  125,    0,    0,    0,
  1490.     0,    0,    0,    0,    0,  126,  127,  128,  129,  130,
  1491.   131,  132,  133,  134,  135,  136,  137,  138,  139,  140,
  1492.   141,  142,  143,  144,    0,    0,    0,    0,    0,   54,
  1493.    55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
  1494.    65,    0,    0,    0,    0,    0,   66,   67,   68,   69,
  1495.    70,   71,   72,   73,   74,   75,   88,    0,   76,   77,
  1496.    78,   79,    0,   85,  145,  146,    0,    0,   87,    0,
  1497.     0,    0,    0,    0,    0,    0,   80,   81,   82,   83,
  1498.    84,    0,    0,    0,  147,  148,  149,   29,    0,    0,
  1499.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1500.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1501.     0,    0,    0,    0,    0,    0,    0,    0,    0,   86,
  1502.     0,    0,   47,   48,   49,    8,    0,    0,   50,    0,
  1503.     0,    0,    0,   51,    0,    0,   52,   53,    0,    0,
  1504.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1505.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1506.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1507.    54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
  1508.    64,   65,    0,    0,    0,    0,    0,   66,   67,   68,
  1509.    69,   70,   71,   72,   73,   74,   75,  104,    0,   76,
  1510.    77,   78,   79,    0,  103,    0,    0,    0,    0,   87,
  1511.     0,    0,    0,    0,    0,    0,    0,   80,   81,   82,
  1512.    83,   84,    0,    0,    0,    0,    0,    0,   29,    0,
  1513.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1514.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1515.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1516.    86,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1517.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1518.    47,   48,   49,    8,    0,    0,   50,    0,    0,    0,
  1519.     0,   51,    0,    0,   52,   53,    0,    0,  104,    0,
  1520.     0,    0,    0,    0,    0,   85,    0,    0,    0,    0,
  1521.    87,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1522.     0,    0,    0,    0,    0,    0,    0,    0,   54,   55,
  1523.    56,   57,   58,   59,   60,   61,   62,   63,   64,   65,
  1524.     0,    0,    0,    0,    0,   66,   67,   68,   69,   70,
  1525.    71,   72,   73,   74,   75,    0,    0,   76,   77,   78,
  1526.    79,   86,    0,    0,    0,    0,    0,    0,    0,    0,
  1527.     0,    0,    0,    0,    0,   80,   81,   82,   83,   84,
  1528.     0,    0,    0,    0,    0,    0,   29,    0,    0,    0,
  1529.     0,    0,    0,    0,    0,    0,    0,    0,    0,  104,
  1530.     0,    0,    0,    0,    0,    0,  266,    0,    0,    0,
  1531.     0,   87,    0,    0,    0,    0,    0,    0,    0,    0,
  1532.     0,   47,   48,   49,    8,    0,    0,   50,    0,    0,
  1533.     0,    0,   51,    0,    0,   52,   53,    0,    0,    0,
  1534.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1535.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1536.     0,    0,   86,    0,    0,    0,    0,    0,    0,   54,
  1537.    55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
  1538.    65,    0,    0,    0,    0,    0,   66,   67,   68,   69,
  1539.    70,   71,   72,   73,   74,   75,    0,    0,   76,   77,
  1540.    78,   79,   88,    0,    0,    0,    0,    0,    0,  103,
  1541.     0,  402,    0,    0,   87,    0,   80,   81,   82,   83,
  1542.    84,    0,   47,   48,   49,    8,    0,   29,   50,    0,
  1543.     0,    0,    0,   51,    0,    0,   52,   53,    0,    0,
  1544.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1545.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1546.     0,    0,    0,    0,    0,   86,    0,    0,    0,    0,
  1547.    54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
  1548.    64,   65,    0,    0,    0,    0,    0,   66,   67,   68,
  1549.    69,   70,   71,   72,   73,   74,   75,    0,    0,   76,
  1550.    77,   78,   79,   88,    0,    0,    0,    0,    0,    0,
  1551.   103,    0,    0,    0,    0,   87,    0,   80,   81,   82,
  1552.    83,   84,    0,   47,   48,   49,    8,    0,   29,   50,
  1553.     0,    0,    0,    0,   51,    0,    0,   52,   53,    0,
  1554.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1555.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1556.     0,    0,    0,    0,    0,    0,   86,    0,    0,    0,
  1557.     0,   54,   55,   56,   57,   58,   59,   60,   61,   62,
  1558.    63,   64,   65,    0,    0,    0,    0,    0,   66,   67,
  1559.    68,   69,   70,   71,   72,   73,   74,   75,    0,    0,
  1560.    76,   77,   78,   79,   88,    0,    0,    0,    0,    0,
  1561.     0,   85,    0,    0,    0,    0,   87,    0,   80,   81,
  1562.    82,   83,   84,    0,    0,    0,   47,   48,   49,   29,
  1563.     0,    0,   50,    0,    0,    0,    0,   51,    0,    0,
  1564.    52,   53,    0,    0,    0,    0,    0,    0,    0,    0,
  1565.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1566.     0,    0,    0,    0,    0,    0,    0,   86,    0,    0,
  1567.     0,    0,    0,    0,   54,   55,   56,   57,   58,   59,
  1568.    60,   61,   62,   63,   64,   65,    0,    0,    0,    0,
  1569.     0,   66,   67,   68,   69,   70,   71,   72,   73,   74,
  1570.    75,    0,    0,   76,   77,   78,   79,   88,    0,    0,
  1571.     0,    0,    0,    0,  266,    0,    0,    0,    0,   87,
  1572.     0,   80,   81,   82,   83,   84,    0,   47,   48,   49,
  1573.     0,    0,    0,   50,    0,    0,    0,    0,   51,    0,
  1574.     0,   52,   53,    0,    0,    0,    0,    0,    0,    0,
  1575.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1576.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1577.    86,    0,    0,    0,    0,   54,   55,   56,   57,   58,
  1578.    59,   60,   61,   62,   63,   64,   65,    0,    0,    0,
  1579.     0,    0,   66,   67,   68,   69,   70,   71,   72,   73,
  1580.    74,   75,    0,    0,   76,   77,   78,   79,   88,    0,
  1581.     0,    0,    0,    0,    0,  103,    0,    0,    0,    0,
  1582.    87,    0,   80,   81,   82,   83,   84,    0,   47,   48,
  1583.    49,    0,    0,    0,   50,    0,    0,    0,    0,   51,
  1584.     0,    0,   52,   53,    0,    0,    0,    0,    0,    0,
  1585.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1586.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1587.     0,   86,    0,    0,    0,    0,   54,   55,   56,   57,
  1588.    58,   59,   60,   61,   62,   63,   64,   65,    0,    0,
  1589.     0,    0,    0,   66,   67,   68,   69,   70,   71,   72,
  1590.    73,   74,   75,    0,    0,   76,   77,   78,   79,    0,
  1591.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1592.     0,    0,    0,   80,   81,   82,   83,   84,    0,    0,
  1593.     0,   47,   48,   49,    0,    0,    0,   50,    0,    0,
  1594.     0,    0,   51,    0,    0,   52,   53,    0,    0,    0,
  1595.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1596.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1597.     0,    0,    0,    0,    0,    0,    0,    0,    0,   54,
  1598.    55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
  1599.    65,    0,    0,    0,    0,    0,   66,   67,   68,   69,
  1600.    70,   71,   72,   73,   74,   75,    0,    0,   76,   77,
  1601.    78,   79,    0,    0,    0,    0,    0,    0,    0,    0,
  1602.     0,    0,    0,    0,    0,    0,   80,   81,   82,   83,
  1603.    84,    0,   47,   48,   49,    0,    0,    0,   50,    0,
  1604.     0,    0,    0,   51,    0,    0,    0,    0,    0,    0,
  1605.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1606.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1607.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1608.    54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
  1609.    64,   65,    0,    0,    0,    0,    0,   66,   67,   68,
  1610.    69,   70,   71,   72,   73,   74,   75,    0,    0,   76,
  1611.    77,   78,   79,    0,    0,    0,    0,    0,    0,    0,
  1612.     0,    0,    0,    0,    0,    0,    0,   80,   81,   82,
  1613.    83,   84,
  1614. };
  1615. static YYCONST short yycheck[] = {                                      24,
  1616.   118,   44,    0,   28,   93,   30,   59,   43,   37,   45,
  1617.   260,   36,   59,   42,   43,   37,   45,  260,   47,    0,
  1618.    42,   43,    0,   45,   96,   47,  104,   85,   43,    4,
  1619.    45,   60,   43,   62,   45,    0,  154,   35,   98,  100,
  1620.   346,  347,   41,   41,   43,   58,   45,   62,   61,   24,
  1621.    41,   41,  113,   44,   44,   30,  348,  349,    0,  258,
  1622.    85,   36,   87,   88,   58,   94,  317,  318,  319,  320,
  1623.   321,  258,   94,  114,  115,  100,  134,   96,   43,  104,
  1624.    45,   59,   37,  333,   43,   44,   45,   42,  113,   95,
  1625.    40,    0,   47,  345,   59,   61,  333,  122,  123,  124,
  1626.   125,  126,  127,  128,  129,  130,  131,  132,    0,  134,
  1627.    91,  136,  137,  138,  203,   93,  262,   59,   40,   40,
  1628.   363,    0,  147,  148,   40,  100,   40,  133,   93,  154,
  1629.    40,   61,   41,   40,    0,   44,  111,   40,  113,   94,
  1630.    40,   40,  123,  118,  271,  272,   40,  125,  290,    0,
  1631.    59,   93,  230,  231,  212,  213,  234,  235,  260,  258,
  1632.   125,  262,  187,  188,  189,  190,  191,  192,  193,  194,
  1633.   195,  196,  197,  198,  199,  200,  201,  202,    0,  154,
  1634.     0,   41,   33,  125,   93,  257,   41,  212,  213,   40,
  1635.   264,  263,   94,   59,   45,  301,  268,   46,  258,  259,
  1636.   257,   93,  227,  271,  272,  230,  231,  232,  266,  234,
  1637.   235,    0,   93,  125,   93,  258,  125,   93,   85,   41,
  1638.   262,   41,   44,  257,   44,  352,  353,   93,  300,  262,
  1639.    96,  260,   44,  125,   43,   44,   45,   59,  257,   59,
  1640.    91,  266,   41,   41,  263,   96,  125,   41,   41,  268,
  1641.    41,  257,   44,  371,  260,   43,   44,   45,  264,  125,
  1642.    44,  236,  237,  130,  131,  132,  241,    0,  304,    0,
  1643.    59,   93,  123,   93,  299,   41,  257,  258,  300,  260,
  1644.   261,  303,  342,   41,  352,  353,    0,  154,  269,  270,
  1645.   271,  272,  273,  274,  275,  276,  277,  278,  279,  280,
  1646.   302,  346,   33,  125,   93,  125,   37,   44,  262,   40,
  1647.    41,   42,   43,   44,   45,  303,   47,  346,  347,  348,
  1648.   349,  350,  351,  257,  260,   41,   59,  194,   59,   60,
  1649.   358,   62,   41,   41,  363,  202,  125,  343,  344,   41,
  1650.   365,  366,  367,  343,  369,   59,    0,  262,   41,  154,
  1651.   343,  332,   30,  377,  343,  264,  343,  338,  339,   35,
  1652.    93,  342,   93,  344,   -1,   96,  372,   -1,   -1,  375,
  1653.    -1,   -1,   -1,   -1,  399,   -1,  357,  402,  359,   93,
  1654.    -1,  290,  363,  364,   -1,   -1,   -1,   -1,   -1,    0,
  1655.    -1,  257,  125,   37,  125,   -1,  371,  263,   42,   43,
  1656.    -1,   45,  268,   47,   -1,   -1,  257,  258,  259,  260,
  1657.   261,  125,  263,   -1,   -1,   -1,   -1,  268,  269,  270,
  1658.   271,  272,  273,  274,  275,  276,  277,  278,  279,  280,
  1659.    41,   -1,  299,   44,  300,   -1,   -1,  346,  347,   -1,
  1660.    -1,   -1,  264,   -1,  264,   -1,   -1,   -1,   59,   -1,
  1661.    94,   -1,   -1,   -1,  305,  306,  307,  308,  309,  310,
  1662.   311,  312,  313,  314,  315,  316,   -1,   -1,  290,   -1,
  1663.   290,  322,  323,  324,  325,  326,  327,  328,  329,  330,
  1664.   331,  332,   93,  334,  335,  336,  337,  338,  339,   -1,
  1665.    -1,  342,   -1,  344,   -1,   -1,   -1,   -1,  365,  366,
  1666.    -1,  352,  353,  354,  355,  356,  357,   -1,  359,   -1,
  1667.    -1,   -1,  363,  364,  125,   -1,   91,   -1,   -1,   -1,
  1668.    -1,  257,   -1,   -1,  260,  347,  257,  258,  259,  260,
  1669.    -1,   -1,  263,  264,  265,  266,  267,  268,  269,  270,
  1670.   271,  272,   -1,   -1,   -1,   91,   -1,   -1,   -1,   -1,
  1671.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  1672.   291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  1673.    -1,   -1,  303,  304,  305,  306,  307,  308,  309,  310,
  1674.   311,  312,  313,  314,  315,  316,   -1,   -1,    0,   -1,
  1675.     0,  322,  323,  324,  325,  326,  327,  328,  329,  330,
  1676.   331,    0,   -1,  334,  335,  336,  337,  343,  344,  340,
  1677.   341,   -1,  343,    0,    0,  346,  347,  348,  349,  350,
  1678.   351,  352,  353,  354,  355,  356,   -1,   -1,   -1,  360,
  1679.   361,  362,  363,   43,   33,   45,  372,   -1,   37,  375,
  1680.    -1,   40,   41,   42,   43,   44,   45,   59,   47,   59,
  1681.    -1,    0,   26,  264,   41,   -1,   -1,   44,   -1,   -1,
  1682.    59,   60,   -1,   62,   -1,   91,   -1,   -1,   42,   -1,
  1683.    -1,   -1,   59,   59,   -1,   -1,   -1,   -1,    0,  290,
  1684.    -1,   93,   -1,   93,   -1,  260,   -1,   -1,   -1,  300,
  1685.    -1,   -1,  303,  268,   93,   -1,   -1,   96,  273,  274,
  1686.   275,  276,  277,  278,   -1,  280,   93,   93,    0,   -1,
  1687.    59,   -1,   86,  125,  260,  125,   -1,   -1,   -1,    0,
  1688.     0,   -1,  268,   -1,   -1,   -1,  125,  273,  274,  275,
  1689.   276,  277,  278,   -1,  280,  346,  347,   59,  125,  125,
  1690.    -1,   33,   -1,   -1,   93,   37,   -1,   -1,   40,   41,
  1691.    42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,
  1692.    41,   41,   -1,   44,   44,   -1,   -1,   59,   60,   -1,
  1693.    62,   93,   -1,   -1,   -1,   37,  125,   -1,   59,   59,
  1694.    42,   43,  156,   45,   -1,   47,  160,  161,  162,  163,
  1695.   164,  165,  166,  167,  168,  169,   -1,   -1,   60,   -1,
  1696.    62,   93,   -1,  125,   96,   -1,   -1,   -1,   -1,   -1,
  1697.    -1,   -1,   93,   93,   -1,   -1,   -1,   37,   -1,   -1,
  1698.    -1,   -1,   42,   43,   44,   45,   -1,   47,   -1,   -1,
  1699.    -1,   -1,   94,  125,  260,   -1,   -1,   -1,   -1,   -1,
  1700.    60,   -1,   62,   -1,  125,  125,   -1,  273,  274,  275,
  1701.   276,  277,  278,   -1,  280,   -1,   -1,   -1,  257,  258,
  1702.   259,  260,   -1,   -1,  263,  264,  265,  266,  267,  268,
  1703.   269,  270,  271,  272,   94,   -1,   -1,  264,   -1,   -1,
  1704.    -1,   -1,  281,  282,  283,  284,  285,  286,  287,  288,
  1705.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  1706.   299,  300,   -1,  290,  303,  304,  305,  306,  307,  308,
  1707.   309,  310,  311,  312,  313,  314,  315,  316,   -1,   -1,
  1708.    -1,   -1,   -1,  322,  323,  324,  325,  326,  327,  328,
  1709.   329,  330,  331,   -1,   -1,  334,  335,  336,  337,   -1,
  1710.    -1,  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,
  1711.   349,  350,  351,  352,  353,  354,  355,  356,   -1,   -1,
  1712.   347,  360,  361,  362,  363,  257,  258,  259,  260,   -1,
  1713.    -1,  263,  264,  265,  266,  267,  268,  269,  270,  271,
  1714.   272,  355,   -1,  264,  264,  359,  360,   -1,   -1,  281,
  1715.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  1716.   292,  293,  294,  295,  296,  297,  298,  299,  300,  290,
  1717.   290,  303,  304,  305,  306,  307,  308,  309,  310,  311,
  1718.   312,  313,  314,  315,  316,   -1,   -1,   -1,   -1,   -1,
  1719.   322,  323,  324,  325,  326,  327,  328,  329,  330,  331,
  1720.     0,   -1,  334,  335,  336,  337,   -1,   -1,  340,  341,
  1721.    -1,  343,   -1,   -1,  346,  347,  348,  349,  350,  351,
  1722.   352,  353,  354,  355,  356,   -1,  347,   -1,  360,  361,
  1723.   362,  363,   -1,   33,   -1,   -1,   -1,   37,   -1,   -1,
  1724.    40,   41,   42,   43,   44,   45,   -1,   47,  350,  351,
  1725.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
  1726.    60,   -1,   62,   -1,   -1,   -1,   -1,   24,   -1,   -1,
  1727.    -1,   -1,   37,   30,   -1,   -1,   -1,   42,   43,   -1,
  1728.    45,   -1,   47,   -1,   -1,   -1,  346,  347,  348,  349,
  1729.   350,  351,   -1,   93,   -1,   60,   96,   62,   -1,   -1,
  1730.    -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
  1731.    -1,   -1,   -1,   37,   -1,   -1,   -1,   -1,   42,   43,
  1732.    -1,   45,   -1,   47,   -1,  125,   -1,   -1,   85,   94,
  1733.    -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,   -1,
  1734.    33,   -1,   -1,  100,   37,   -1,   -1,   40,   41,   42,
  1735.    43,   44,   45,   -1,   47,   -1,  113,   -1,   -1,   -1,
  1736.    -1,   -1,   -1,   -1,   -1,   -1,   59,   60,   -1,   62,
  1737.    94,   -1,   -1,  130,  131,  132,   37,   -1,   -1,   -1,
  1738.    -1,   42,   43,   37,   45,   -1,   47,   -1,   42,   43,
  1739.    44,   45,   -1,   47,   -1,   -1,   -1,  154,   -1,   60,
  1740.    93,   62,   -1,   96,   37,   -1,   60,   -1,   62,   42,
  1741.    43,   44,   45,   -1,   47,   -1,   37,   -1,   -1,   -1,
  1742.    -1,   42,   43,   -1,   45,   -1,   47,   60,   -1,   62,
  1743.    -1,   -1,  125,   94,   -1,   -1,   -1,  194,   -1,   60,
  1744.    94,   62,   -1,   -1,   -1,  202,   -1,   -1,   -1,   -1,
  1745.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
  1746.   260,   94,   -1,  263,  264,  265,  266,  267,  268,  269,
  1747.   270,  271,  272,   94,   -1,   -1,   -1,   -1,   -1,   -1,
  1748.    -1,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  1749.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  1750.   300,   -1,   -1,  303,  304,  305,  306,  307,  308,  309,
  1751.   310,  311,  312,  313,  314,  315,  316,   -1,   -1,   -1,
  1752.    -1,  286,  322,  323,  324,  325,  326,  327,  328,  329,
  1753.   330,  331,   -1,   -1,  334,  335,  336,  337,   -1,   -1,
  1754.   340,  341,  299,  343,   -1,   -1,  346,  347,  348,  349,
  1755.   350,  351,  352,  353,  354,  355,  356,   -1,   -1,   -1,
  1756.   360,  361,  362,  363,  257,  258,  259,  260,   -1,   -1,
  1757.   263,  264,  265,  266,  267,  268,  269,  270,  271,  272,
  1758.    -1,  346,  347,  348,  349,  350,  351,   -1,  281,  282,
  1759.   283,  284,  285,  286,  287,  288,  289,  290,  291,  292,
  1760.   293,  294,  295,  296,  297,  298,  299,  300,  365,  366,
  1761.   303,  304,  305,  306,  307,  308,  309,  310,  311,  312,
  1762.   313,  314,  315,  316,  348,  349,  350,  351,   -1,  322,
  1763.   323,  324,  325,  326,  327,  328,  329,  330,  331,    0,
  1764.    -1,  334,  335,  336,  337,   -1,  300,  340,  341,  303,
  1765.   343,   -1,   -1,  346,  347,  348,  349,  350,  351,  352,
  1766.   353,  354,  355,  356,   -1,   -1,   -1,  360,  361,  362,
  1767.   363,   -1,   33,   -1,   -1,   -1,   37,   -1,   -1,   40,
  1768.    41,   42,   43,   44,   45,  346,   47,  348,  349,  350,
  1769.   351,   -1,  346,  347,  348,  349,  350,  351,   59,   60,
  1770.    -1,   62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1771.    -1,   -1,   -1,  346,  347,  348,  349,  350,  351,   -1,
  1772.    -1,   -1,   -1,   -1,   -1,  346,  347,  348,  349,  350,
  1773.   351,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,
  1774.    -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
  1775.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1776.    -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  1777.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,
  1778.    -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   43,
  1779.    44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1780.    -1,   -1,   -1,   -1,   -1,   59,   60,   -1,   62,   -1,
  1781.    -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,   -1,   -1,
  1782.    42,   43,   37,   45,   -1,   47,   -1,   42,   43,   44,
  1783.    45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   60,   93,
  1784.    62,   -1,   96,   37,   -1,   60,   -1,   62,   42,   43,
  1785.    -1,   45,   -1,   47,   -1,   37,   -1,   -1,   -1,   -1,
  1786.    42,   43,   -1,   45,   -1,   47,   60,   -1,   62,   -1,
  1787.    -1,  125,   94,   -1,   -1,   -1,   -1,   -1,   60,   94,
  1788.    62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1789.    -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
  1790.    94,   -1,  263,  264,  265,  266,  267,  268,  269,  270,
  1791.   271,  272,   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1792.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  1793.   291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  1794.    -1,   -1,  303,  304,  305,  306,  307,  308,  309,  310,
  1795.   311,  312,  313,  314,  315,  316,   -1,   -1,   -1,   -1,
  1796.    -1,  322,  323,  324,  325,  326,  327,  328,  329,  330,
  1797.   331,   -1,   -1,  334,  335,  336,  337,   -1,   -1,  340,
  1798.   341,   -1,  343,   -1,   -1,  346,  347,  348,  349,  350,
  1799.   351,  352,  353,  354,  355,  356,   -1,   -1,   -1,  360,
  1800.   361,  362,  363,  257,  258,  259,  260,   -1,   -1,  263,
  1801.   264,  265,  266,  267,  268,  269,  270,  271,  272,   -1,
  1802.     0,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,  283,
  1803.   284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
  1804.   294,  295,  296,  297,  298,  299,  300,   -1,   -1,  303,
  1805.   304,  305,  306,  307,  308,  309,  310,  311,  312,  313,
  1806.   314,  315,  316,   -1,   -1,   -1,   -1,  289,  322,  323,
  1807.   324,  325,  326,  327,  328,  329,  330,  331,    0,   59,
  1808.   334,  335,  336,  337,   -1,  300,  340,  341,  303,  343,
  1809.    -1,   -1,  346,  347,  348,  349,  350,  351,  352,  353,
  1810.   354,  355,  356,   -1,   -1,   -1,  360,  361,  362,  363,
  1811.    -1,   33,   -1,   93,   -1,   -1,   96,   -1,   40,   41,
  1812.    -1,   43,   44,   45,  346,  347,  348,  349,  350,  351,
  1813.    -1,  346,  347,  348,  349,  350,  351,   59,   60,   -1,
  1814.    62,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,
  1815.    -1,   -1,  346,  347,  348,  349,  350,  351,   -1,   -1,
  1816.    -1,   -1,   -1,   -1,  346,   -1,  348,  349,  350,  351,
  1817.    -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,
  1818.    -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
  1819.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1820.    -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
  1821.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,
  1822.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  1823.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1824.    -1,   -1,   -1,   -1,   59,   60,   -1,   62,   -1,   -1,
  1825.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1826.    -1,   37,   -1,   -1,   -1,   -1,   42,   43,   44,   45,
  1827.    -1,   47,   -1,   -1,   -1,   -1,   -1,  257,   93,   -1,
  1828.    -1,   96,   -1,  263,   60,   -1,   62,   -1,  268,   -1,
  1829.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1830.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1831.   125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   94,   -1,
  1832.   300,   -1,   -1,   -1,   -1,   -1,   46,   -1,   -1,   -1,
  1833.    -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,   46,
  1834.    -1,  263,  264,  265,  266,  267,  268,  269,  270,  271,
  1835.   272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
  1836.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  1837.   292,  293,  294,  295,  296,  297,  298,  299,  300,   -1,
  1838.    -1,  303,  304,  305,  306,  307,  308,  309,  310,  311,
  1839.   312,  313,  314,  315,  316,   -1,   -1,   -1,   -1,   -1,
  1840.   322,  323,  324,  325,  326,  327,  328,  329,  330,  331,
  1841.    -1,   -1,  334,  335,  336,  337,   -1,   -1,  340,  341,
  1842.    -1,  343,   -1,   -1,  346,  347,  348,  349,  350,  351,
  1843.   352,  353,  354,  355,  356,   46,   -1,   -1,  360,  361,
  1844.   362,  363,  257,  258,  259,  260,   -1,   -1,  263,  264,
  1845.   265,  266,  267,  268,  269,  270,  271,  272,   -1,   -1,
  1846.    -1,   -1,   -1,   -1,   -1,   -1,  281,  282,  283,  284,
  1847.   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
  1848.   295,  296,  297,  298,  299,  300,   -1,   -1,  303,  304,
  1849.   305,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  1850.   315,  316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,
  1851.   325,  326,  327,  328,  329,  330,  331,    0,   -1,  334,
  1852.   335,  336,  337,   -1,  300,  340,  341,  303,  343,   -1,
  1853.    -1,  346,  347,  348,  349,  350,  351,  352,  353,  354,
  1854.   355,  356,   -1,   -1,   -1,  360,  361,  362,  363,   -1,
  1855.    33,  271,  272,   -1,   -1,   -1,   -1,   40,   41,   -1,
  1856.    -1,   44,   -1,   -1,  271,  272,   -1,   -1,   -1,   -1,
  1857.   346,  347,  348,  349,  350,  351,   59,   60,   -1,   62,
  1858.    -1,   -1,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  1859.   310,  311,  312,  313,  314,  315,  316,   -1,   -1,  306,
  1860.   307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
  1861.    93,   -1,   -1,   96,  334,  335,  336,  337,   -1,   -1,
  1862.    -1,   -1,   -1,   -1,    0,   -1,   -1,  334,  335,  336,
  1863.   337,   -1,  352,  353,  354,  355,  356,   -1,   -1,   -1,
  1864.    -1,   -1,  125,   -1,   -1,  352,  353,  354,  355,  356,
  1865.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,
  1866.    -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,
  1867.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1868.    -1,   -1,   -1,   59,   60,   -1,   62,   -1,   -1,   -1,
  1869.    -1,   -1,   -1,   -1,   -1,  306,  307,  308,  309,  310,
  1870.   311,  312,  313,  314,  315,  316,   -1,   -1,   -1,   -1,
  1871.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
  1872.    96,   -1,   -1,  334,  335,  336,  337,   -1,   -1,   -1,
  1873.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1874.    -1,  352,  353,  354,  355,  356,   -1,   -1,   -1,  125,
  1875.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1876.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1877.    -1,   -1,   -1,   -1,  257,  258,  259,  260,   -1,   -1,
  1878.   263,  264,  265,  266,  267,  268,  269,  270,  271,  272,
  1879.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,
  1880.   283,  284,  285,  286,  287,  288,  289,  290,  291,  292,
  1881.   293,  294,  295,  296,  297,  298,  299,  300,   -1,   -1,
  1882.   303,  304,  305,  306,  307,  308,  309,  310,  311,  312,
  1883.   313,  314,  315,  316,   -1,   -1,   -1,   -1,   -1,  322,
  1884.   323,  324,  325,  326,  327,  328,  329,  330,  331,   -1,
  1885.    -1,  334,  335,  336,  337,   -1,   -1,  340,  341,   -1,
  1886.   343,   -1,   -1,  346,  347,  348,  349,  350,  351,  352,
  1887.   353,  354,  355,  356,   -1,   -1,   -1,  360,  361,  362,
  1888.   363,  257,  258,  259,  260,   -1,   -1,  263,  264,  265,
  1889.   266,  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,
  1890.    -1,   -1,   -1,   -1,   -1,  281,  282,  283,  284,  285,
  1891.   286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
  1892.   296,  297,  298,  299,  300,   -1,   -1,  303,  304,  305,
  1893.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  1894.   316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,  325,
  1895.   326,  327,  328,  329,  330,  331,    0,   -1,  334,  335,
  1896.   336,  337,   -1,   -1,  340,  341,   -1,  343,   -1,   -1,
  1897.   346,  347,  348,  349,  350,  351,  352,  353,  354,  355,
  1898.   356,   -1,   -1,   -1,  360,  361,  362,  363,   -1,   33,
  1899.    -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
  1900.    44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1901.    -1,   -1,   -1,   -1,   -1,   59,   60,   -1,   62,   -1,
  1902.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1903.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1904.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
  1905.    -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1906.    -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
  1907.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1908.    -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1909.    -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,
  1910.    -1,   -1,   -1,   40,   41,   -1,   43,   44,   45,   -1,
  1911.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1912.    -1,   -1,   59,   -1,   -1,   62,   -1,   -1,   -1,   -1,
  1913.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1914.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1915.    -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,
  1916.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1917.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1918.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,
  1919.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1920.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1921.    -1,   -1,   -1,  257,  258,  259,  260,   -1,   -1,  263,
  1922.   264,  265,  266,  267,  268,  269,  270,  271,  272,   -1,
  1923.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,  283,
  1924.   284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
  1925.   294,  295,  296,  297,  298,  299,  300,   -1,   -1,  303,
  1926.   304,  305,  306,  307,  308,  309,  310,  311,  312,  313,
  1927.   314,  315,  316,   -1,   -1,   -1,   -1,   -1,  322,  323,
  1928.   324,  325,  326,  327,  328,  329,  330,  331,   -1,   -1,
  1929.   334,  335,  336,  337,   -1,   -1,  340,  341,   -1,  343,
  1930.    -1,   -1,  346,  347,  348,  349,  350,  351,  352,  353,
  1931.   354,  355,  356,   -1,   -1,   -1,  360,  361,  362,  363,
  1932.   257,  258,  259,  260,   -1,   -1,  263,   -1,  265,  266,
  1933.   267,  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
  1934.    -1,   -1,   -1,   -1,  281,  282,  283,  284,  285,  286,
  1935.   287,  288,  289,  290,  291,  292,  293,  294,  295,  296,
  1936.   297,  298,  299,   -1,   -1,   -1,   -1,  304,  305,  306,
  1937.   307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
  1938.   317,  318,  319,  320,  321,  322,  323,  324,  325,  326,
  1939.   327,  328,  329,  330,  331,    0,   -1,  334,  335,  336,
  1940.   337,   -1,   -1,  340,  341,   -1,   -1,   -1,   -1,   -1,
  1941.    -1,   -1,   -1,   -1,   -1,  352,  353,  354,  355,  356,
  1942.    -1,   -1,   -1,  360,  361,  362,  363,   -1,   33,   -1,
  1943.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  1944.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1945.    -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
  1946.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1947.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1948.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
  1949.    -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1950.    -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1951.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1952.   125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1953.    -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,
  1954.    -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
  1955.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1956.    -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1957.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1958.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1959.    -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,
  1960.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1961.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1962.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
  1963.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1964.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1965.    -1,   -1,  257,  258,  259,  260,   -1,   -1,  263,  264,
  1966.   265,  266,  267,  268,  269,  270,  271,  272,   -1,   -1,
  1967.    -1,   -1,   -1,   -1,   -1,   -1,  281,  282,  283,  284,
  1968.   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
  1969.   295,  296,  297,  298,  299,  300,   -1,   -1,  303,  304,
  1970.   305,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  1971.   315,  316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,
  1972.   325,  326,  327,  328,  329,  330,  331,   -1,   -1,  334,
  1973.   335,  336,  337,   -1,   -1,  340,  341,   -1,  343,   -1,
  1974.    -1,  346,  347,  348,  349,   -1,   -1,  352,  353,  354,
  1975.   355,  356,   -1,   -1,   -1,  360,  361,  362,  363,  257,
  1976.   258,  259,  260,   -1,   -1,  263,  264,  265,  266,  267,
  1977.   268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,
  1978.    -1,   -1,   -1,  281,  282,  283,  284,  285,  286,  287,
  1979.   288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  1980.   298,  299,  300,   -1,   -1,  303,  304,  305,  306,  307,
  1981.   308,  309,  310,  311,  312,  313,  314,  315,  316,   -1,
  1982.    -1,   -1,   -1,   -1,  322,  323,  324,  325,  326,  327,
  1983.   328,  329,  330,  331,    0,   -1,  334,  335,  336,  337,
  1984.    -1,   -1,  340,  341,   -1,  343,   -1,   -1,  346,  347,
  1985.   348,  349,   -1,   -1,  352,  353,  354,  355,  356,   -1,
  1986.    -1,   -1,  360,  361,  362,  363,   -1,   33,   -1,   -1,
  1987.    -1,   -1,   -1,   -1,   40,   41,   -1,   43,   44,   45,
  1988.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1989.    -1,   -1,   -1,   59,   -1,   -1,   62,   -1,   -1,   -1,
  1990.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1991.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1992.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
  1993.    96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1994.    -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1995.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,
  1996.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1997.    -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,
  1998.    -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
  1999.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2000.    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2001.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2002.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2003.    -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
  2004.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2005.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2006.    -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,
  2007.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2008.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2009.    -1,  257,  258,  259,  260,   -1,   -1,  263,   -1,  265,
  2010.   266,  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,
  2011.    -1,   -1,   -1,   -1,   -1,  281,  282,  283,  284,  285,
  2012.   286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
  2013.   296,  297,  298,  299,   -1,   -1,   -1,   -1,  304,  305,
  2014.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  2015.   316,  317,  318,  319,  320,  321,  322,  323,  324,  325,
  2016.   326,  327,  328,  329,  330,  331,   -1,   -1,  334,  335,
  2017.   336,  337,   -1,   -1,  340,  341,   -1,   -1,   -1,   -1,
  2018.    -1,   -1,   -1,   -1,   -1,   -1,  352,  353,  354,  355,
  2019.   356,   -1,   -1,   -1,  360,  361,  362,  363,  257,  258,
  2020.   259,  260,   -1,   -1,  263,  264,  265,  266,  267,  268,
  2021.   269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
  2022.    -1,   -1,  281,  282,  283,  284,  285,  286,  287,  288,
  2023.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2024.   299,  300,   -1,   -1,  303,  304,  305,  306,  307,  308,
  2025.   309,  310,  311,  312,  313,  314,  315,  316,   -1,   -1,
  2026.    -1,   -1,   -1,  322,  323,  324,  325,  326,  327,  328,
  2027.   329,  330,  331,    0,   -1,  334,  335,  336,  337,   -1,
  2028.    -1,  340,  341,   -1,  343,   -1,   -1,  346,  347,   -1,
  2029.    -1,   -1,   -1,  352,  353,  354,  355,  356,   -1,   -1,
  2030.    -1,  360,  361,  362,  363,   -1,   33,   -1,   -1,   -1,
  2031.    -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,
  2032.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2033.    -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2034.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2035.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2036.    -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,
  2037.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2038.     0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2039.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,
  2040.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2041.    -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,   -1,
  2042.    40,   41,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,
  2043.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
  2044.    -1,   -1,   62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2045.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2046.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2047.    -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,
  2048.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2049.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2050.    -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,
  2051.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2052.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2053.   257,  258,  259,  260,   -1,   -1,  263,  264,  265,  266,
  2054.   267,  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
  2055.    -1,   -1,   -1,   -1,  281,  282,  283,  284,  285,  286,
  2056.   287,  288,  289,  290,  291,  292,  293,  294,  295,  296,
  2057.   297,  298,  299,  300,   -1,   -1,  303,  304,  305,  306,
  2058.   307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
  2059.    -1,   -1,   -1,   -1,   -1,  322,  323,  324,  325,  326,
  2060.   327,  328,  329,  330,  331,   -1,   -1,  334,  335,  336,
  2061.   337,   -1,   -1,  340,  341,   -1,  343,   -1,   -1,   -1,
  2062.   347,   -1,   -1,   -1,   -1,  352,  353,  354,  355,  356,
  2063.    -1,   -1,   -1,  360,  361,  362,  363,  257,  258,  259,
  2064.   260,   -1,   -1,  263,   -1,  265,  266,  267,  268,  269,
  2065.   270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2066.    -1,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  2067.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2068.    -1,   -1,   -1,   -1,  304,  305,  306,  307,  308,  309,
  2069.   310,  311,  312,  313,  314,  315,  316,   -1,   -1,   -1,
  2070.    -1,   -1,  322,  323,  324,  325,  326,  327,  328,  329,
  2071.   330,  331,    0,   -1,  334,  335,  336,  337,   -1,   -1,
  2072.   340,  341,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2073.    -1,   -1,  352,  353,  354,  355,  356,   -1,   -1,   -1,
  2074.   360,  361,  362,  363,   -1,   33,   -1,   -1,   -1,   -1,
  2075.    -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
  2076.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2077.    -1,   59,   -1,   -1,   62,   -1,   -1,   -1,   -1,   -1,
  2078.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2079.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2080.    -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,
  2081.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,
  2082.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2083.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
  2084.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2085.    -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,
  2086.    41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
  2087.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  2088.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2089.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2090.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2091.    -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,
  2092.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2093.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2094.    -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  2095.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2096.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
  2097.   258,  259,  260,   -1,   -1,  263,   -1,  265,  266,  267,
  2098.   268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,
  2099.    -1,   -1,   -1,  281,  282,  283,  284,  285,  286,  287,
  2100.   288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  2101.   298,  299,   -1,   -1,   -1,   -1,  304,  305,  306,  307,
  2102.   308,  309,  310,  311,  312,  313,  314,  315,  316,   -1,
  2103.    -1,   -1,   -1,   -1,  322,  323,  324,  325,  326,  327,
  2104.   328,  329,  330,  331,   -1,   -1,  334,  335,  336,  337,
  2105.    40,   -1,  340,  341,   -1,   -1,   46,   -1,   -1,   -1,
  2106.    -1,   -1,   -1,   -1,  352,  353,  354,  355,  356,   -1,
  2107.    -1,   -1,  360,  361,  362,  363,  257,  258,  259,  260,
  2108.    -1,   -1,  263,   -1,  265,  266,  267,  268,  269,  270,
  2109.   271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2110.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  2111.   291,  292,  293,  294,  295,  296,  297,  298,  299,   -1,
  2112.    -1,   -1,   -1,  304,  305,  306,  307,  308,  309,  310,
  2113.   311,  312,  313,  314,  315,  316,    0,   -1,   -1,   -1,
  2114.    -1,  322,  323,  324,  325,  326,  327,  328,  329,  330,
  2115.   331,   -1,   -1,  334,  335,  336,  337,   -1,   -1,  340,
  2116.   341,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,
  2117.    -1,  352,  353,  354,  355,  356,   40,   -1,   -1,  360,
  2118.   361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2119.    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
  2120.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2121.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2122.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
  2123.    -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2124.    -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
  2125.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2126.    -1,  125,   -1,   -1,   -1,   -1,   -1,  257,   -1,   -1,
  2127.    -1,   -1,   -1,  263,   -1,   -1,   33,   -1,  268,   -1,
  2128.    -1,  271,  272,   40,   -1,   -1,   -1,   -1,   -1,   -1,
  2129.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2130.    -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2131.    -1,   -1,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  2132.   310,  311,  312,  313,  314,  315,  316,   -1,   -1,   -1,
  2133.    -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,
  2134.    -1,   -1,   -1,   -1,  334,  335,  336,  337,   -1,   -1,
  2135.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2136.    -1,   -1,  352,  353,  354,  355,  356,   -1,  125,   -1,
  2137.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2138.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2139.    -1,   -1,   -1,  257,  258,  259,  260,   -1,   -1,  263,
  2140.    -1,  265,  266,  267,  268,  269,  270,  271,  272,   -1,
  2141.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,  283,
  2142.   284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
  2143.   294,  295,  296,  297,  298,  299,   -1,   -1,   -1,   -1,
  2144.    -1,  305,  306,  307,  308,  309,  310,  311,  312,  313,
  2145.   314,  315,  316,   -1,   -1,   91,   -1,   -1,  322,  323,
  2146.   324,  325,  326,  327,  328,  329,  330,  331,   -1,   -1,
  2147.   334,  335,  336,  337,   -1,   -1,  340,  341,   -1,   -1,
  2148.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  352,  353,
  2149.   354,  355,  356,   -1,   -1,   -1,  360,  361,  362,  363,
  2150.   257,  258,  259,  260,   -1,   -1,  263,   -1,  265,  266,
  2151.   267,  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
  2152.    -1,   -1,   -1,   -1,  281,  282,  283,  284,  285,  286,
  2153.   287,  288,  289,  290,  291,  292,  293,  294,  295,  296,
  2154.   297,  298,  299,   -1,   -1,   -1,   -1,   -1,  305,  306,
  2155.   307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
  2156.     0,   -1,   -1,   -1,   -1,  322,  323,  324,  325,  326,
  2157.   327,  328,  329,  330,  331,   -1,   -1,  334,  335,  336,
  2158.   337,   -1,   -1,  340,  341,   -1,   -1,   -1,   -1,   -1,
  2159.    -1,   -1,   -1,   33,   -1,  352,  353,  354,  355,  356,
  2160.    40,   -1,   -1,  360,  361,  362,  363,   -1,   -1,   -1,
  2161.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
  2162.    -1,  257,  258,   -1,  260,  261,   -1,   -1,   -1,   -1,
  2163.    -1,   -1,   -1,  269,  270,  271,  272,  273,  274,  275,
  2164.   276,  277,  278,  279,  280,   -1,   -1,   -1,   -1,   -1,
  2165.    -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,
  2166.    -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
  2167.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2168.    -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,
  2169.    -1,   -1,   -1,   -1,   -1,   -1,  332,   -1,   -1,   -1,
  2170.    33,   -1,  338,  339,   -1,   -1,  342,   40,  344,   -1,
  2171.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2172.    -1,  357,   -1,  359,   -1,   -1,   59,  363,  364,   -1,
  2173.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2174.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2175.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2176.    93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,
  2177.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2178.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2179.    -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2180.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2181.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
  2182.   260,   -1,   -1,  263,   -1,  265,  266,  267,  268,  269,
  2183.   270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2184.    -1,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  2185.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2186.    -1,   -1,   -1,   -1,   -1,  305,  306,  307,  308,  309,
  2187.   310,  311,  312,  313,  314,  315,  316,   -1,   -1,   91,
  2188.    -1,   -1,  322,  323,  324,  325,  326,  327,  328,  329,
  2189.   330,  331,   -1,   -1,  334,  335,  336,  337,   -1,   -1,
  2190.   340,  341,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2191.    -1,  123,  352,  353,  354,  355,  356,   -1,   -1,   -1,
  2192.   360,  361,  362,  363,  257,  258,  259,  260,   -1,   -1,
  2193.   263,   -1,  265,  266,  267,  268,  269,  270,  271,  272,
  2194.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,
  2195.   283,  284,  285,  286,  287,  288,  289,  290,  291,  292,
  2196.   293,  294,  295,  296,  297,  298,  299,   -1,   -1,   -1,
  2197.    -1,   -1,  305,  306,  307,  308,  309,  310,  311,  312,
  2198.   313,  314,  315,  316,    0,   -1,   -1,   -1,   -1,  322,
  2199.   323,  324,  325,  326,  327,  328,  329,  330,  331,   -1,
  2200.    -1,  334,  335,  336,  337,   -1,   -1,  340,  341,   -1,
  2201.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,  352,
  2202.   353,  354,  355,  356,   40,   -1,   -1,  360,  361,  362,
  2203.   363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2204.    -1,   -1,   -1,   59,   -1,  257,  258,   -1,  260,  261,
  2205.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  269,  270,  271,
  2206.   272,  273,  274,  275,  276,  277,  278,  279,  280,   -1,
  2207.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
  2208.    96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2209.    -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2210.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,
  2211.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2212.   332,   -1,   -1,   -1,   33,   -1,  338,  339,   -1,   -1,
  2213.   342,   40,  344,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2214.    -1,   -1,   -1,   -1,   -1,  357,   -1,  359,   -1,   -1,
  2215.    59,  363,  364,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2216.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2217.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2218.    -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
  2219.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2220.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2221.    -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,
  2222.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2223.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2224.    -1,  257,  258,  259,  260,   -1,   -1,  263,   -1,  265,
  2225.   266,  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,
  2226.    -1,   -1,   -1,   -1,   -1,  281,  282,  283,  284,  285,
  2227.   286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
  2228.   296,  297,  298,  299,   -1,   -1,   -1,   -1,   -1,  305,
  2229.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  2230.   316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,  325,
  2231.   326,  327,  328,  329,  330,  331,   -1,   -1,  334,  335,
  2232.   336,  337,   -1,   -1,  340,  341,   -1,   -1,   -1,   -1,
  2233.    -1,   -1,   -1,   -1,   -1,   -1,  352,  353,  354,  355,
  2234.   356,   -1,   -1,   -1,  360,  361,  362,  363,  257,  258,
  2235.   259,  260,   -1,   -1,  263,   -1,  265,  266,  267,  268,
  2236.   269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
  2237.    -1,   -1,  281,  282,  283,  284,  285,  286,  287,  288,
  2238.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2239.   299,   -1,   -1,   -1,   -1,   -1,  305,  306,  307,  308,
  2240.   309,  310,  311,  312,  313,  314,  315,  316,    0,   -1,
  2241.    -1,   -1,   -1,  322,  323,  324,  325,  326,  327,  328,
  2242.   329,  330,  331,   -1,   -1,  334,  335,  336,  337,   -1,
  2243.    -1,  340,  341,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2244.    -1,   33,   -1,  352,  353,  354,  355,  356,   40,   -1,
  2245.    -1,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
  2246.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  2247.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2248.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2249.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2250.    -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,
  2251.    -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
  2252.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2253.    -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
  2254.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,
  2255.    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,
  2256.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2257.    -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
  2258.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2259.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2260.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
  2261.    -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2262.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2263.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2264.   125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2265.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2266.    -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,   -1,
  2267.    -1,  263,   -1,  265,  266,  267,  268,  269,  270,  271,
  2268.   272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
  2269.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  2270.   292,  293,  294,  295,  296,  297,  298,  299,   -1,   -1,
  2271.    -1,   -1,   -1,  305,  306,  307,  308,  309,  310,  311,
  2272.   312,  313,  314,  315,  316,   -1,   -1,   -1,   -1,   -1,
  2273.   322,  323,  324,  325,  326,  327,  328,  329,  330,  331,
  2274.    -1,   -1,  334,  335,  336,  337,   -1,   -1,  340,  341,
  2275.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2276.   352,  353,  354,  355,  356,   -1,   -1,   -1,  360,  361,
  2277.   362,  363,  257,  258,  259,  260,   -1,   -1,  263,   -1,
  2278.   265,  266,  267,  268,  269,  270,  271,  272,   -1,   -1,
  2279.    -1,   -1,   -1,   -1,   -1,   -1,  281,  282,  283,  284,
  2280.   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
  2281.   295,  296,  297,  298,  299,   -1,   -1,   -1,   -1,   -1,
  2282.   305,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  2283.   315,  316,    0,   -1,   -1,   -1,   -1,  322,  323,  324,
  2284.   325,  326,  327,  328,  329,  330,  331,   -1,   -1,  334,
  2285.   335,  336,  337,   -1,   -1,  340,  341,   -1,   -1,   -1,
  2286.    -1,   -1,   -1,   -1,   -1,   33,   -1,  352,  353,  354,
  2287.   355,  356,   40,   -1,   -1,  360,  361,  362,  363,   -1,
  2288.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2289.    -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2290.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2291.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2292.    -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,
  2293.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,
  2294.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2295.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
  2296.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2297.    -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,
  2298.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2299.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  2300.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2301.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2302.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2303.    -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,
  2304.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2305.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2306.    -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  2307.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2308.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
  2309.   258,  259,  260,   -1,   -1,  263,   -1,  265,  266,  267,
  2310.   268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,
  2311.    -1,   -1,   -1,  281,  282,  283,  284,  285,  286,  287,
  2312.   288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  2313.   298,  299,   -1,   -1,   -1,   -1,   -1,  305,  306,  307,
  2314.   308,  309,  310,  311,  312,  313,  314,  315,  316,   -1,
  2315.    -1,   -1,   -1,   -1,  322,  323,  324,  325,  326,  327,
  2316.   328,  329,  330,  331,   -1,   -1,  334,  335,  336,  337,
  2317.    -1,   -1,  340,  341,   -1,   -1,   -1,   -1,   -1,   -1,
  2318.    -1,   -1,   -1,   -1,  352,  353,  354,  355,  356,   -1,
  2319.    -1,   -1,  360,  361,  362,  363,  257,  258,  259,  260,
  2320.    -1,   -1,  263,   -1,  265,  266,  267,  268,  269,  270,
  2321.   271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2322.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  2323.   291,  292,  293,  294,  295,  296,  297,  298,  299,   -1,
  2324.    -1,   -1,   -1,   -1,  305,  306,  307,  308,  309,  310,
  2325.   311,  312,  313,  314,  315,  316,    0,   -1,   -1,   -1,
  2326.    -1,  322,  323,  324,  325,  326,  327,  328,  329,  330,
  2327.   331,   -1,   -1,  334,  335,  336,  337,   -1,   -1,  340,
  2328.   341,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,
  2329.    -1,  352,  353,  354,  355,  356,   40,   -1,   -1,  360,
  2330.   361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2331.    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
  2332.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2333.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2334.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
  2335.    -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2336.    -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
  2337.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2338.    -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2339.    -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,
  2340.    -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   -1,   -1,
  2341.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2342.    -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2343.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2344.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2345.    -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,
  2346.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2347.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2348.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,
  2349.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2350.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2351.    -1,   -1,   -1,  257,  258,  259,  260,   -1,   -1,  263,
  2352.    -1,  265,  266,  267,  268,  269,  270,  271,  272,   -1,
  2353.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,  283,
  2354.   284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
  2355.   294,  295,  296,  297,  298,  299,   -1,   -1,   -1,   -1,
  2356.    -1,  305,  306,  307,  308,  309,  310,  311,  312,  313,
  2357.   314,  315,  316,   -1,   -1,   -1,   -1,   -1,  322,  323,
  2358.   324,  325,  326,  327,  328,  329,  330,  331,   -1,   -1,
  2359.   334,  335,  336,  337,   -1,   -1,  340,  341,   -1,   -1,
  2360.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  352,  353,
  2361.   354,  355,  356,   -1,   -1,   -1,  360,  361,  362,  363,
  2362.   257,  258,  259,  260,   -1,   -1,  263,   -1,  265,  266,
  2363.   267,  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
  2364.    -1,   -1,   -1,   -1,  281,  282,  283,  284,  285,  286,
  2365.   287,  288,  289,  290,  291,  292,  293,  294,  295,  296,
  2366.   297,  298,  299,   -1,   -1,   -1,   -1,   -1,  305,  306,
  2367.   307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
  2368.     0,   -1,   -1,   -1,   -1,  322,  323,  324,  325,  326,
  2369.   327,  328,  329,  330,  331,   -1,   -1,  334,  335,  336,
  2370.   337,   -1,   -1,  340,  341,   -1,   -1,   -1,   -1,   -1,
  2371.    -1,   -1,   -1,   33,   -1,  352,  353,  354,  355,  356,
  2372.    40,   -1,   -1,  360,  361,  362,  363,   -1,   -1,   -1,
  2373.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
  2374.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2375.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2376.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2377.    -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,
  2378.    -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
  2379.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2380.    -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,
  2381.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2382.    33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
  2383.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2384.    -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
  2385.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2386.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2387.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2388.    93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,
  2389.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2390.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2391.    -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2392.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2393.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
  2394.   260,   -1,   -1,  263,   -1,  265,  266,  267,  268,  269,
  2395.   270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2396.    -1,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  2397.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2398.    -1,   -1,   -1,   -1,   -1,  305,  306,  307,  308,  309,
  2399.   310,  311,  312,  313,  314,  315,  316,   -1,   -1,   -1,
  2400.    -1,   -1,  322,  323,  324,  325,  326,  327,  328,  329,
  2401.   330,  331,   -1,   -1,  334,  335,  336,  337,   -1,   -1,
  2402.   340,  341,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2403.    -1,   -1,  352,  353,  354,  355,  356,   -1,   -1,   -1,
  2404.   360,  361,  362,  363,  257,  258,  259,  260,   -1,   -1,
  2405.   263,   -1,  265,  266,  267,  268,  269,  270,  271,  272,
  2406.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,
  2407.   283,  284,  285,  286,  287,  288,  289,  290,  291,  292,
  2408.   293,  294,  295,  296,  297,  298,  299,   -1,   -1,   -1,
  2409.    -1,   -1,  305,  306,  307,  308,  309,  310,  311,  312,
  2410.   313,  314,  315,  316,    0,   -1,   -1,   -1,   -1,  322,
  2411.   323,  324,  325,  326,  327,  328,  329,  330,  331,   -1,
  2412.    -1,  334,  335,  336,  337,   -1,   -1,  340,  341,   -1,
  2413.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,  352,
  2414.   353,  354,  355,  356,   40,   -1,   -1,  360,  361,  362,
  2415.   363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2416.    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
  2417.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2418.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2419.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
  2420.    96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2421.    -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2422.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,
  2423.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2424.    -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,
  2425.    -1,   40,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2426.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2427.    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2428.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2429.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2430.    -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
  2431.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2432.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2433.    -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,
  2434.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2435.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2436.    -1,  257,  258,  259,  260,   -1,   -1,  263,   -1,  265,
  2437.   266,  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,
  2438.    -1,   -1,   -1,   -1,   -1,  281,  282,  283,  284,  285,
  2439.   286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
  2440.   296,  297,  298,  299,   -1,   -1,   -1,   -1,   -1,  305,
  2441.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  2442.   316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,  325,
  2443.   326,  327,  328,  329,  330,  331,   -1,   -1,  334,  335,
  2444.   336,  337,   -1,   -1,  340,  341,   -1,   -1,   -1,   -1,
  2445.    -1,   -1,   -1,   -1,   -1,   -1,  352,  353,  354,  355,
  2446.   356,   -1,   -1,   -1,  360,  361,  362,  363,  257,  258,
  2447.   259,  260,   -1,   -1,  263,   -1,  265,  266,  267,  268,
  2448.   269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
  2449.    -1,   -1,  281,  282,  283,  284,  285,  286,  287,  288,
  2450.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2451.   299,   -1,   -1,   -1,   -1,   -1,  305,  306,  307,  308,
  2452.   309,  310,  311,  312,  313,  314,  315,  316,    0,   -1,
  2453.    -1,   -1,   -1,  322,  323,  324,  325,  326,  327,  328,
  2454.   329,  330,  331,   -1,   -1,  334,  335,  336,  337,   -1,
  2455.    -1,  340,  341,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2456.    -1,   33,   -1,  352,  353,  354,  355,  356,   40,   -1,
  2457.    -1,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
  2458.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  2459.    -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
  2460.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2461.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2462.    -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,
  2463.    -1,   -1,   -1,   37,   -1,    0,   -1,   41,   42,   43,
  2464.    44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,
  2465.    -1,   -1,   -1,  125,   -1,   59,   60,   -1,   62,   -1,
  2466.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,
  2467.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   43,   44,
  2468.    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
  2469.    -1,   -1,   -1,   -1,   59,   -1,   -1,   62,   -1,   -1,
  2470.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2471.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2472.    -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
  2473.    -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2474.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2475.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2476.   125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2477.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2478.    -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,   -1,
  2479.    -1,  263,   -1,  265,  266,  267,  268,  269,  270,  271,
  2480.   272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
  2481.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  2482.   292,  293,  294,  295,  296,  297,  298,  299,   -1,   -1,
  2483.    -1,   -1,   -1,  305,  306,  307,  308,  309,  310,  311,
  2484.   312,  313,  314,  315,  316,   -1,   -1,   -1,   -1,   -1,
  2485.   322,  323,  324,  325,  326,  327,  328,  329,  330,  331,
  2486.   264,   -1,  334,  335,  336,  337,   -1,   -1,  340,  341,
  2487.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2488.   352,  353,  354,  355,  356,   -1,  290,   -1,  360,  361,
  2489.   362,  363,  257,  258,  259,  260,  300,   -1,  263,  303,
  2490.   265,  266,  267,  268,  269,  270,  271,  272,   -1,   -1,
  2491.    -1,   -1,   -1,   -1,   -1,   -1,  281,  282,  283,  284,
  2492.   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
  2493.   295,  296,  297,  298,  299,   -1,   -1,   -1,   -1,  304,
  2494.   305,    0,  346,  347,  348,  349,  350,  351,   -1,   -1,
  2495.    -1,   -1,  317,  318,  319,  320,  321,  322,  323,  324,
  2496.   325,  326,  327,  328,  329,  330,  331,   -1,   -1,   -1,
  2497.    -1,   -1,   -1,   -1,   33,  340,  341,   -1,   -1,   -1,
  2498.    -1,   40,   41,   -1,    0,   44,   45,   -1,   -1,   -1,
  2499.    -1,   -1,   -1,   -1,   -1,  360,  361,  362,  363,   -1,
  2500.    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2501.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,
  2502.    -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,
  2503.    -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
  2504.    -1,   -1,   -1,   59,   60,   -1,   62,   -1,   -1,   -1,
  2505.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2506.    -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,
  2507.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
  2508.    96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,
  2509.    -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2510.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,
  2511.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2512.    -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,   41,
  2513.    -1,   40,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2514.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  2515.    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2516.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2517.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2518.    -1,   93,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
  2519.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
  2520.   259,  260,   -1,   -1,  263,   -1,  265,  266,  267,  268,
  2521.   269,  270,   -1,  125,   -1,   -1,  125,   -1,   -1,   -1,
  2522.    -1,   -1,  281,  282,  283,  284,  285,  286,  287,  288,
  2523.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2524.   299,  257,  258,  259,  260,   -1,  305,  263,   -1,   -1,
  2525.    -1,   -1,  268,   -1,   -1,  271,  272,   -1,   -1,   -1,
  2526.    -1,   -1,   -1,  322,  323,  324,  325,  326,  327,  328,
  2527.   329,  330,  331,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2528.    -1,  340,  341,    0,   -1,   -1,   -1,   -1,   -1,  305,
  2529.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  2530.   316,  360,  361,  362,  363,   -1,  322,  323,  324,  325,
  2531.   326,  327,  328,  329,  330,  331,   33,   -1,  334,  335,
  2532.   336,  337,   -1,   40,   -1,   -1,   -1,   -1,   -1,   -1,
  2533.   346,  347,  348,  349,  350,  351,  352,  353,  354,  355,
  2534.   356,   -1,   59,   -1,   -1,   -1,   -1,  363,  257,  258,
  2535.   259,  260,  264,   -1,  263,   -1,   -1,   -1,   -1,  268,
  2536.    -1,   -1,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
  2537.    -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,  290,   96,
  2538.    -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,  300,   -1,
  2539.    -1,  303,   -1,   -1,   -1,   -1,  305,  306,  307,  308,
  2540.   309,  310,  311,  312,  313,  314,  315,  316,  125,   -1,
  2541.    -1,   -1,   -1,  322,  323,  324,  325,  326,  327,  328,
  2542.   329,  330,  331,   -1,   -1,  334,  335,  336,  337,   -1,
  2543.    -1,   -1,   -1,   -1,   -1,  347,   -1,   -1,   -1,   -1,
  2544.    -1,   59,   -1,  352,  353,  354,  355,  356,   -1,   -1,
  2545.    -1,   -1,   -1,   -1,  363,   -1,   -1,   -1,   -1,   -1,
  2546.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2547.    -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
  2548.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2549.     0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2550.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
  2551.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2552.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2553.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2554.   257,  258,  259,  260,   -1,   -1,  263,   -1,   -1,   59,
  2555.    -1,  268,   -1,   -1,  271,  272,   -1,   -1,   -1,   -1,
  2556.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2557.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2558.    -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,  305,  306,
  2559.   307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
  2560.     0,   -1,   -1,   -1,   -1,  322,  323,  324,  325,  326,
  2561.   327,  328,  329,  330,  331,  125,   -1,  334,  335,  336,
  2562.   337,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2563.    -1,   -1,   -1,   -1,   -1,  352,  353,  354,  355,  356,
  2564.     0,   -1,  260,   -1,   -1,   -1,  363,  265,  266,  267,
  2565.    -1,  269,  270,  271,  272,   -1,   -1,   -1,   -1,   59,
  2566.    -1,   -1,   -1,  281,  282,  283,  284,  285,  286,  287,
  2567.   288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  2568.   298,  299,  300,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2569.    -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   59,
  2570.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2571.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2572.    -1,   -1,  340,  341,   -1,  125,   -1,   -1,   -1,   -1,
  2573.    -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,    0,
  2574.    -1,   -1,  360,  361,  362,  363,   -1,   -1,   -1,   -1,
  2575.   260,   -1,   -1,   -1,   -1,  265,  266,  267,   -1,  269,
  2576.   270,  271,  272,   -1,   -1,  125,   -1,   -1,   -1,   -1,
  2577.    -1,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  2578.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2579.   300,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  2580.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2581.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2582.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2583.   340,  341,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2584.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,
  2585.   360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,
  2586.   260,   -1,   -1,   -1,  125,  265,  266,  267,   -1,  269,
  2587.   270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2588.    -1,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  2589.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2590.   260,   -1,   -1,   -1,   -1,  265,  266,  267,   59,  269,
  2591.   270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2592.    -1,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  2593.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2594.   340,  341,   93,   -1,   -1,   -1,   -1,   -1,    0,   -1,
  2595.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2596.   360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,
  2597.    -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  2598.   340,  341,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,
  2599.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,
  2600.   360,  361,  362,  363,  265,  266,  267,   59,  269,  270,
  2601.   271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2602.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  2603.   291,  292,  293,  294,  295,  296,  297,  298,  299,   -1,
  2604.    -1,   93,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  2605.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2606.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2607.    -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,  340,
  2608.   341,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2609.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  360,
  2610.   361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,  260,
  2611.    -1,   -1,   -1,  125,  265,  266,  267,   -1,  269,  270,
  2612.   271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2613.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  2614.   291,  292,  293,  294,  295,  296,  297,  298,  299,   -1,
  2615.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2616.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2617.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2618.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  340,
  2619.   341,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2620.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,  360,
  2621.   361,  362,  363,  265,  266,  267,   -1,  269,  270,  271,
  2622.   272,   -1,   -1,   -1,   91,   -1,   -1,   -1,   -1,  281,
  2623.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  2624.   292,  293,  294,  295,  296,  297,  298,  299,  260,   -1,
  2625.    -1,   -1,   -1,  265,  266,  267,  123,  269,  270,  271,
  2626.   272,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
  2627.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  2628.   292,  293,  294,  295,  296,  297,  298,  299,  340,  341,
  2629.    -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,
  2630.    -1,   40,   -1,   -1,   -1,   -1,   -1,   -1,  360,  361,
  2631.   362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2632.    59,   -1,    0,   -1,   -1,   -1,   -1,   -1,  340,  341,
  2633.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2634.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  360,  361,
  2635.   362,  363,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
  2636.    -1,   -1,   -1,   -1,   -1,   43,   -1,   45,   46,   -1,
  2637.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2638.    -1,   59,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,
  2639.   257,  258,   -1,  260,  261,   -1,   -1,   -1,   -1,   -1,
  2640.    -1,   -1,  269,  270,  271,  272,  273,  274,  275,  276,
  2641.   277,  278,  279,  280,   -1,   93,   -1,   -1,   -1,   -1,
  2642.    -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,
  2643.    -1,   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,   -1,
  2644.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
  2645.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2646.    -1,   -1,   -1,   -1,   -1,  332,   -1,   -1,   -1,   -1,
  2647.    -1,  338,  339,   -1,   -1,  342,   -1,  344,   -1,   -1,
  2648.    -1,   -1,   -1,   91,   -1,   -1,   -1,   -1,   96,   -1,
  2649.   357,   -1,  359,   -1,   -1,   -1,  363,  364,   -1,   -1,
  2650.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2651.    -1,   -1,   -1,   -1,   -1,  123,   -1,   -1,  257,  258,
  2652.   259,   -1,   -1,   -1,  263,   -1,  265,  266,  267,  268,
  2653.   269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
  2654.    -1,   -1,  281,  282,  283,  284,  285,  286,  287,  288,
  2655.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2656.   299,   -1,   -1,   -1,   -1,   -1,  305,  306,  307,  308,
  2657.   309,  310,  311,  312,  313,  314,  315,  316,   -1,   -1,
  2658.    -1,   -1,   -1,  322,  323,  324,  325,  326,  327,  328,
  2659.   329,  330,  331,  271,  272,  334,  335,  336,  337,   -1,
  2660.    -1,  340,  341,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2661.    -1,   -1,   -1,  352,  353,  354,  355,  356,   -1,   -1,
  2662.    -1,  360,  361,  362,   -1,   -1,   -1,   -1,  306,  307,
  2663.   308,  309,  310,  311,  312,  313,  314,  315,  316,  317,
  2664.   318,  319,  320,  321,   -1,   -1,   -1,   -1,   -1,  257,
  2665.   258,  259,  260,  261,   -1,  263,  334,  335,  336,  337,
  2666.   268,  269,  270,  271,  272,  273,  274,  275,  276,  277,
  2667.   278,  279,  280,   -1,  352,  353,  354,  355,  356,   33,
  2668.    -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,
  2669.    -1,   45,   -1,   -1,   -1,   -1,   -1,  305,  306,  307,
  2670.   308,  309,  310,  311,  312,  313,  314,  315,  316,   -1,
  2671.    -1,   -1,   -1,   -1,  322,  323,  324,  325,  326,  327,
  2672.   328,  329,  330,  331,  332,   -1,  334,  335,  336,  337,
  2673.   338,  339,   -1,   -1,  342,   -1,  344,   91,   -1,   -1,
  2674.    -1,   -1,   96,   -1,  352,  353,  354,  355,  356,  357,
  2675.    -1,  359,   -1,   -1,   -1,  363,  364,   -1,   -1,   -1,
  2676.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
  2677.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2678.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,
  2679.    -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   45,
  2680.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2681.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2682.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2683.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2684.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2685.    96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2686.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2687.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2688.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2689.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2690.    -1,   -1,   -1,  257,  258,  259,  260,  261,   -1,  263,
  2691.    -1,   -1,   -1,   -1,  268,  269,  270,  271,  272,  273,
  2692.   274,  275,  276,  277,  278,  279,  280,   -1,   33,   -1,
  2693.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   -1,
  2694.    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2695.    -1,  305,  306,  307,  308,  309,  310,  311,  312,  313,
  2696.   314,  315,  316,   -1,   -1,   -1,   -1,   -1,  322,  323,
  2697.   324,  325,  326,  327,  328,  329,  330,  331,  332,   -1,
  2698.   334,  335,  336,  337,  338,  339,   -1,   -1,  342,   -1,
  2699.   344,   96,   -1,   -1,   -1,   -1,   -1,   -1,  352,  353,
  2700.   354,  355,  356,  357,   -1,  359,   -1,   -1,   -1,  363,
  2701.   364,  257,  258,  259,  260,   -1,   -1,  263,   -1,  265,
  2702.   266,  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,
  2703.    -1,   -1,   -1,   -1,   -1,  281,  282,  283,  284,  285,
  2704.   286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
  2705.   296,  297,  298,  299,   -1,   -1,   -1,   -1,   -1,  305,
  2706.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  2707.   316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,  325,
  2708.   326,  327,  328,  329,  330,  331,   33,   -1,  334,  335,
  2709.   336,  337,   -1,   40,  340,  341,   -1,   -1,   45,   -1,
  2710.    -1,   -1,   -1,   -1,   -1,   -1,  352,  353,  354,  355,
  2711.   356,   -1,   -1,   -1,  360,  361,  362,  363,   -1,   -1,
  2712.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2713.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2714.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   96,
  2715.    -1,   -1,  257,  258,  259,  260,   -1,   -1,  263,   -1,
  2716.    -1,   -1,   -1,  268,   -1,   -1,  271,  272,   -1,   -1,
  2717.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2718.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2719.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2720.   305,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  2721.   315,  316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,
  2722.   325,  326,  327,  328,  329,  330,  331,   33,   -1,  334,
  2723.   335,  336,  337,   -1,   40,   -1,   -1,   -1,   -1,   45,
  2724.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  352,  353,  354,
  2725.   355,  356,   -1,   -1,   -1,   -1,   -1,   -1,  363,   -1,
  2726.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2727.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2728.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2729.    96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2730.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2731.   257,  258,  259,  260,   -1,   -1,  263,   -1,   -1,   -1,
  2732.    -1,  268,   -1,   -1,  271,  272,   -1,   -1,   33,   -1,
  2733.    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,
  2734.    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2735.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  305,  306,
  2736.   307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
  2737.    -1,   -1,   -1,   -1,   -1,  322,  323,  324,  325,  326,
  2738.   327,  328,  329,  330,  331,   -1,   -1,  334,  335,  336,
  2739.   337,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2740.    -1,   -1,   -1,   -1,   -1,  352,  353,  354,  355,  356,
  2741.    -1,   -1,   -1,   -1,   -1,   -1,  363,   -1,   -1,   -1,
  2742.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,
  2743.    -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,
  2744.    -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2745.    -1,  257,  258,  259,  260,   -1,   -1,  263,   -1,   -1,
  2746.    -1,   -1,  268,   -1,   -1,  271,  272,   -1,   -1,   -1,
  2747.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2748.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2749.    -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,  305,
  2750.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  2751.   316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,  325,
  2752.   326,  327,  328,  329,  330,  331,   -1,   -1,  334,  335,
  2753.   336,  337,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,
  2754.    -1,   42,   -1,   -1,   45,   -1,  352,  353,  354,  355,
  2755.   356,   -1,  257,  258,  259,  260,   -1,  363,  263,   -1,
  2756.    -1,   -1,   -1,  268,   -1,   -1,  271,  272,   -1,   -1,
  2757.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2758.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2759.    -1,   -1,   -1,   -1,   -1,   96,   -1,   -1,   -1,   -1,
  2760.   305,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  2761.   315,  316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,
  2762.   325,  326,  327,  328,  329,  330,  331,   -1,   -1,  334,
  2763.   335,  336,  337,   33,   -1,   -1,   -1,   -1,   -1,   -1,
  2764.    40,   -1,   -1,   -1,   -1,   45,   -1,  352,  353,  354,
  2765.   355,  356,   -1,  257,  258,  259,  260,   -1,  363,  263,
  2766.    -1,   -1,   -1,   -1,  268,   -1,   -1,  271,  272,   -1,
  2767.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2768.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2769.    -1,   -1,   -1,   -1,   -1,   -1,   96,   -1,   -1,   -1,
  2770.    -1,  305,  306,  307,  308,  309,  310,  311,  312,  313,
  2771.   314,  315,  316,   -1,   -1,   -1,   -1,   -1,  322,  323,
  2772.   324,  325,  326,  327,  328,  329,  330,  331,   -1,   -1,
  2773.   334,  335,  336,  337,   33,   -1,   -1,   -1,   -1,   -1,
  2774.    -1,   40,   -1,   -1,   -1,   -1,   45,   -1,  352,  353,
  2775.   354,  355,  356,   -1,   -1,   -1,  257,  258,  259,  363,
  2776.    -1,   -1,  263,   -1,   -1,   -1,   -1,  268,   -1,   -1,
  2777.   271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2778.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2779.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   96,   -1,   -1,
  2780.    -1,   -1,   -1,   -1,  305,  306,  307,  308,  309,  310,
  2781.   311,  312,  313,  314,  315,  316,   -1,   -1,   -1,   -1,
  2782.    -1,  322,  323,  324,  325,  326,  327,  328,  329,  330,
  2783.   331,   -1,   -1,  334,  335,  336,  337,   33,   -1,   -1,
  2784.    -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   45,
  2785.    -1,  352,  353,  354,  355,  356,   -1,  257,  258,  259,
  2786.    -1,   -1,   -1,  263,   -1,   -1,   -1,   -1,  268,   -1,
  2787.    -1,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2788.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2789.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2790.    96,   -1,   -1,   -1,   -1,  305,  306,  307,  308,  309,
  2791.   310,  311,  312,  313,  314,  315,  316,   -1,   -1,   -1,
  2792.    -1,   -1,  322,  323,  324,  325,  326,  327,  328,  329,
  2793.   330,  331,   -1,   -1,  334,  335,  336,  337,   33,   -1,
  2794.    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,
  2795.    45,   -1,  352,  353,  354,  355,  356,   -1,  257,  258,
  2796.   259,   -1,   -1,   -1,  263,   -1,   -1,   -1,   -1,  268,
  2797.    -1,   -1,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
  2798.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2799.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2800.    -1,   96,   -1,   -1,   -1,   -1,  305,  306,  307,  308,
  2801.   309,  310,  311,  312,  313,  314,  315,  316,   -1,   -1,
  2802.    -1,   -1,   -1,  322,  323,  324,  325,  326,  327,  328,
  2803.   329,  330,  331,   -1,   -1,  334,  335,  336,  337,   -1,
  2804.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2805.    -1,   -1,   -1,  352,  353,  354,  355,  356,   -1,   -1,
  2806.    -1,  257,  258,  259,   -1,   -1,   -1,  263,   -1,   -1,
  2807.    -1,   -1,  268,   -1,   -1,  271,  272,   -1,   -1,   -1,
  2808.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2809.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2810.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  305,
  2811.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  2812.   316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,  325,
  2813.   326,  327,  328,  329,  330,  331,   -1,   -1,  334,  335,
  2814.   336,  337,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2815.    -1,   -1,   -1,   -1,   -1,   -1,  352,  353,  354,  355,
  2816.   356,   -1,  257,  258,  259,   -1,   -1,   -1,  263,   -1,
  2817.    -1,   -1,   -1,  268,   -1,   -1,   -1,   -1,   -1,   -1,
  2818.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2819.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2820.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2821.   305,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  2822.   315,  316,   -1,   -1,   -1,   -1,   -1,  322,  323,  324,
  2823.   325,  326,  327,  328,  329,  330,  331,   -1,   -1,  334,
  2824.   335,  336,  337,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2825.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  352,  353,  354,
  2826.   355,  356,
  2827. };
  2828. #define YYFINAL 2
  2829. #ifndef YYDEBUG
  2830. #define YYDEBUG 0
  2831. #endif
  2832. #define YYMAXTOKEN 366
  2833. #if YYDEBUG
  2834. static YYCONST char *YYCONST yyname[] = {
  2835. "end-of-file",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,
  2836. "'!'",0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0,
  2837. 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,
  2838. 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,
  2839. 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,
  2840. 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,0,
  2841. 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,0,
  2842. 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,"LABEL","VARIABLE","NUMBER",
  2843. "TEXT","COMMAND_LINE","DELIMITED","ORDINAL","TH","LEFT_ARROW_HEAD",
  2844. "RIGHT_ARROW_HEAD","DOUBLE_ARROW_HEAD","LAST","UP","DOWN","LEFT","RIGHT","BOX",
  2845. "CIRCLE","ELLIPSE","ARC","LINE","ARROW","MOVE","SPLINE","HEIGHT","RADIUS",
  2846. "WIDTH","DIAMETER","FROM","TO","AT","WITH","BY","THEN","DOTTED","DASHED","CHOP",
  2847. "SAME","INVISIBLE","LJUST","RJUST","ABOVE","BELOW","OF","THE","WAY","BETWEEN",
  2848. "AND","HERE","DOT_N","DOT_E","DOT_W","DOT_S","DOT_NE","DOT_SE","DOT_NW",
  2849. "DOT_SW","DOT_C","DOT_START","DOT_END","DOT_X","DOT_Y","DOT_HT","DOT_WID",
  2850. "DOT_RAD","SIN","COS","ATAN2","LOG","EXP","SQRT","K_MAX","K_MIN","INT","RAND",
  2851. "COPY","THRU","TOP","BOTTOM","UPPER","LOWER","SH","PRINT","CW","CCW","FOR","DO",
  2852. "IF","ELSE","ANDAND","OROR","NOTEQUAL","EQUALEQUAL","LESSEQUAL","GREATEREQUAL",
  2853. "LEFT_CORNER","RIGHT_CORNER","CENTER","END","START","RESET","UNTIL","PLOT",
  2854. "THICKNESS","FILL","ALIGNED","SPRINTF","COMMAND","DEFINE","UNDEF",
  2855. };
  2856. static YYCONST char *YYCONST yyrule[] = {
  2857. "$accept : top",
  2858. "top : optional_separator",
  2859. "top : element_list",
  2860. "element_list : optional_separator middle_element_list optional_separator",
  2861. "middle_element_list : element",
  2862. "middle_element_list : middle_element_list separator element",
  2863. "optional_separator :",
  2864. "optional_separator : separator",
  2865. "separator : ';'",
  2866. "separator : separator ';'",
  2867. "placeless_element : VARIABLE '=' any_expr",
  2868. "placeless_element : VARIABLE ':' '=' any_expr",
  2869. "placeless_element : UP",
  2870. "placeless_element : DOWN",
  2871. "placeless_element : LEFT",
  2872. "placeless_element : RIGHT",
  2873. "placeless_element : COMMAND_LINE",
  2874. "placeless_element : COMMAND print_args",
  2875. "placeless_element : PRINT print_args",
  2876. "$$1 :",
  2877. "placeless_element : SH $$1 DELIMITED",
  2878. "placeless_element : COPY TEXT",
  2879. "$$2 :",
  2880. "$$3 :",
  2881. "placeless_element : COPY TEXT THRU $$2 DELIMITED $$3 until",
  2882. "$$4 :",
  2883. "$$5 :",
  2884. "placeless_element : COPY THRU $$4 DELIMITED $$5 until",
  2885. "$$6 :",
  2886. "placeless_element : FOR VARIABLE '=' expr TO expr optional_by DO $$6 DELIMITED",
  2887. "placeless_element : simple_if",
  2888. "$$7 :",
  2889. "placeless_element : simple_if ELSE $$7 DELIMITED",
  2890. "placeless_element : reset_variables",
  2891. "placeless_element : RESET",
  2892. "reset_variables : RESET VARIABLE",
  2893. "reset_variables : reset_variables VARIABLE",
  2894. "reset_variables : reset_variables ',' VARIABLE",
  2895. "print_args : print_arg",
  2896. "print_args : print_args print_arg",
  2897. "print_arg : expr",
  2898. "print_arg : text",
  2899. "print_arg : position",
  2900. "$$8 :",
  2901. "simple_if : IF any_expr THEN $$8 DELIMITED",
  2902. "until :",
  2903. "until : UNTIL TEXT",
  2904. "any_expr : expr",
  2905. "any_expr : text_expr",
  2906. "text_expr : text EQUALEQUAL text",
  2907. "text_expr : text NOTEQUAL text",
  2908. "text_expr : text_expr ANDAND text_expr",
  2909. "text_expr : text_expr ANDAND expr",
  2910. "text_expr : expr ANDAND text_expr",
  2911. "text_expr : text_expr OROR text_expr",
  2912. "text_expr : text_expr OROR expr",
  2913. "text_expr : expr OROR text_expr",
  2914. "text_expr : '!' text_expr",
  2915. "optional_by :",
  2916. "optional_by : BY expr",
  2917. "optional_by : BY '*' expr",
  2918. "element : object_spec",
  2919. "element : LABEL ':' optional_separator element",
  2920. "element : LABEL ':' optional_separator position_not_place",
  2921. "element : LABEL ':' optional_separator place",
  2922. "$$9 :",
  2923. "$$10 :",
  2924. "element : '{' $$9 element_list '}' $$10 optional_element",
  2925. "element : placeless_element",
  2926. "optional_element :",
  2927. "optional_element : element",
  2928. "object_spec : BOX",
  2929. "object_spec : CIRCLE",
  2930. "object_spec : ELLIPSE",
  2931. "object_spec : ARC",
  2932. "object_spec : LINE",
  2933. "object_spec : ARROW",
  2934. "object_spec : MOVE",
  2935. "object_spec : SPLINE",
  2936. "object_spec : text",
  2937. "object_spec : PLOT expr",
  2938. "object_spec : PLOT expr text",
  2939. "$$11 :",
  2940. "object_spec : '[' $$11 element_list ']'",
  2941. "object_spec : object_spec HEIGHT expr",
  2942. "object_spec : object_spec RADIUS expr",
  2943. "object_spec : object_spec WIDTH expr",
  2944. "object_spec : object_spec DIAMETER expr",
  2945. "object_spec : object_spec expr",
  2946. "object_spec : object_spec UP",
  2947. "object_spec : object_spec UP expr",
  2948. "object_spec : object_spec DOWN",
  2949. "object_spec : object_spec DOWN expr",
  2950. "object_spec : object_spec RIGHT",
  2951. "object_spec : object_spec RIGHT expr",
  2952. "object_spec : object_spec LEFT",
  2953. "object_spec : object_spec LEFT expr",
  2954. "object_spec : object_spec FROM position",
  2955. "object_spec : object_spec TO position",
  2956. "object_spec : object_spec AT position",
  2957. "object_spec : object_spec WITH path",
  2958. "object_spec : object_spec BY expr_pair",
  2959. "object_spec : object_spec THEN",
  2960. "object_spec : object_spec DOTTED",
  2961. "object_spec : object_spec DOTTED expr",
  2962. "object_spec : object_spec DASHED",
  2963. "object_spec : object_spec DASHED expr",
  2964. "object_spec : object_spec FILL",
  2965. "object_spec : object_spec FILL expr",
  2966. "object_spec : object_spec CHOP",
  2967. "object_spec : object_spec CHOP expr",
  2968. "object_spec : object_spec SAME",
  2969. "object_spec : object_spec INVISIBLE",
  2970. "object_spec : object_spec LEFT_ARROW_HEAD",
  2971. "object_spec : object_spec RIGHT_ARROW_HEAD",
  2972. "object_spec : object_spec DOUBLE_ARROW_HEAD",
  2973. "object_spec : object_spec CW",
  2974. "object_spec : object_spec CCW",
  2975. "object_spec : object_spec text",
  2976. "object_spec : object_spec LJUST",
  2977. "object_spec : object_spec RJUST",
  2978. "object_spec : object_spec ABOVE",
  2979. "object_spec : object_spec BELOW",
  2980. "object_spec : object_spec THICKNESS expr",
  2981. "object_spec : object_spec ALIGNED",
  2982. "text : TEXT",
  2983. "text : SPRINTF '(' TEXT sprintf_args ')'",
  2984. "sprintf_args :",
  2985. "sprintf_args : sprintf_args ',' expr",
  2986. "position : position_not_place",
  2987. "position : place",
  2988. "position_not_place : expr_pair",
  2989. "position_not_place : position '+' expr_pair",
  2990. "position_not_place : position '-' expr_pair",
  2991. "position_not_place : '(' position ',' position ')'",
  2992. "position_not_place : expr between position AND position",
  2993. "position_not_place : expr '<' position ',' position '>'",
  2994. "between : BETWEEN",
  2995. "between : OF THE WAY BETWEEN",
  2996. "expr_pair : expr ',' expr",
  2997. "expr_pair : '(' expr_pair ')'",
  2998. "place : label",
  2999. "place : label corner",
  3000. "place : corner label",
  3001. "place : corner OF label",
  3002. "place : HERE",
  3003. "label : LABEL",
  3004. "label : nth_primitive",
  3005. "label : label '.' LABEL",
  3006. "ordinal : ORDINAL",
  3007. "ordinal : '`' any_expr TH",
  3008. "optional_ordinal_last : LAST",
  3009. "optional_ordinal_last : ordinal LAST",
  3010. "nth_primitive : ordinal object_type",
  3011. "nth_primitive : optional_ordinal_last object_type",
  3012. "object_type : BOX",
  3013. "object_type : CIRCLE",
  3014. "object_type : ELLIPSE",
  3015. "object_type : ARC",
  3016. "object_type : LINE",
  3017. "object_type : ARROW",
  3018. "object_type : SPLINE",
  3019. "object_type : '[' ']'",
  3020. "object_type : TEXT",
  3021. "label_path : '.' LABEL",
  3022. "label_path : label_path '.' LABEL",
  3023. "relative_path : corner",
  3024. "relative_path : label_path",
  3025. "relative_path : label_path corner",
  3026. "path : relative_path",
  3027. "path : '(' relative_path ',' relative_path ')'",
  3028. "path : ORDINAL LAST object_type relative_path",
  3029. "path : LAST object_type relative_path",
  3030. "path : ORDINAL object_type relative_path",
  3031. "path : LABEL relative_path",
  3032. "corner : DOT_N",
  3033. "corner : DOT_E",
  3034. "corner : DOT_W",
  3035. "corner : DOT_S",
  3036. "corner : DOT_NE",
  3037. "corner : DOT_SE",
  3038. "corner : DOT_NW",
  3039. "corner : DOT_SW",
  3040. "corner : DOT_C",
  3041. "corner : DOT_START",
  3042. "corner : DOT_END",
  3043. "corner : TOP",
  3044. "corner : BOTTOM",
  3045. "corner : LEFT",
  3046. "corner : RIGHT",
  3047. "corner : UPPER LEFT",
  3048. "corner : LOWER LEFT",
  3049. "corner : UPPER RIGHT",
  3050. "corner : LOWER RIGHT",
  3051. "corner : LEFT_CORNER",
  3052. "corner : RIGHT_CORNER",
  3053. "corner : UPPER LEFT_CORNER",
  3054. "corner : LOWER LEFT_CORNER",
  3055. "corner : UPPER RIGHT_CORNER",
  3056. "corner : LOWER RIGHT_CORNER",
  3057. "corner : CENTER",
  3058. "corner : START",
  3059. "corner : END",
  3060. "expr : VARIABLE",
  3061. "expr : NUMBER",
  3062. "expr : place DOT_X",
  3063. "expr : place DOT_Y",
  3064. "expr : place DOT_HT",
  3065. "expr : place DOT_WID",
  3066. "expr : place DOT_RAD",
  3067. "expr : expr '+' expr",
  3068. "expr : expr '-' expr",
  3069. "expr : expr '*' expr",
  3070. "expr : expr '/' expr",
  3071. "expr : expr '%' expr",
  3072. "expr : expr '^' expr",
  3073. "expr : '-' expr",
  3074. "expr : '(' any_expr ')'",
  3075. "expr : SIN '(' any_expr ')'",
  3076. "expr : COS '(' any_expr ')'",
  3077. "expr : ATAN2 '(' any_expr ',' any_expr ')'",
  3078. "expr : LOG '(' any_expr ')'",
  3079. "expr : EXP '(' any_expr ')'",
  3080. "expr : SQRT '(' any_expr ')'",
  3081. "expr : K_MAX '(' any_expr ',' any_expr ')'",
  3082. "expr : K_MIN '(' any_expr ',' any_expr ')'",
  3083. "expr : INT '(' any_expr ')'",
  3084. "expr : RAND '(' any_expr ')'",
  3085. "expr : RAND '(' ')'",
  3086. "expr : expr '<' expr",
  3087. "expr : expr LESSEQUAL expr",
  3088. "expr : expr '>' expr",
  3089. "expr : expr GREATEREQUAL expr",
  3090. "expr : expr EQUALEQUAL expr",
  3091. "expr : expr NOTEQUAL expr",
  3092. "expr : expr ANDAND expr",
  3093. "expr : expr OROR expr",
  3094. "expr : '!' expr",
  3095. };
  3096. #endif
  3097. #define YYLEX yylex()
  3098. #define YYEMPTY -1
  3099. #define yyclearin (yychar=(YYEMPTY))
  3100. #define yyerrok (yyerrflag=0)
  3101. #ifndef YYINITDEPTH
  3102. #define YYINITDEPTH 200
  3103. #endif
  3104. #ifdef YYSTACKSIZE
  3105. #undef YYMAXDEPTH
  3106. #define YYMAXDEPTH YYSTACKSIZE
  3107. #else
  3108. #ifdef YYMAXDEPTH
  3109. #define YYSTACKSIZE YYMAXDEPTH
  3110. #else
  3111. #define YYSTACKSIZE 10000
  3112. #define YYMAXDEPTH 10000
  3113. #endif
  3114. #endif
  3115. int yydebug;
  3116. int yynerrs;
  3117. int yyerrflag;
  3118. int yychar;
  3119. YYSTYPE yyval;
  3120. YYSTYPE yylval;
  3121. static short *yyss;
  3122. static YYSTYPE *yyvs;
  3123. static int yystacksize;
  3124. static int yygrow ();
  3125. static YYPTR yymalloc YYPARAMS((unsigned));
  3126. static YYPTR yyrealloc YYPARAMS((YYPTR, unsigned));
  3127. #define yyfree(x) free(x)
  3128. #line 1529 "pic.y"
  3129.  
  3130. /* bison defines const to be empty unless __STDC__ is defined, which it
  3131. isn't under cfront */
  3132.  
  3133. #ifdef const
  3134. #undef const
  3135. #endif
  3136.  
  3137. static struct {
  3138.   const char *name;
  3139.   double val;
  3140.   int scaled;             // non-zero if val should be multiplied by scale
  3141. } defaults_table[] = {
  3142.   { "arcrad", .25, 1 },
  3143.   { "arrowht", .1, 1 },
  3144.   { "arrowwid", .05, 1 },
  3145.   { "circlerad", .25, 1 },
  3146.   { "boxht", .5, 1 },
  3147.   { "boxwid", .75, 1 },
  3148.   { "boxrad", 0.0, 1 },
  3149.   { "dashwid", .05, 1 },
  3150.   { "ellipseht", .5, 1 },
  3151.   { "ellipsewid", .75, 1 },
  3152.   { "moveht", .5, 1 },
  3153.   { "movewid", .5, 1 },
  3154.   { "lineht", .5, 1 },
  3155.   { "linewid", .5, 1 },
  3156.   { "textht", 0.0, 1 },
  3157.   { "textwid", 0.0, 1 },
  3158.   { "scale", 1.0, 0 },
  3159.   { "linethick", -1.0, 0 },        // in points
  3160.   { "fillval", .5, 0 },
  3161.   { "arrowhead", 1.0, 0 },
  3162.   { "maxpswid", 8.5, 0 },
  3163.   { "maxpsht", 11.0, 0 },
  3164. };
  3165.  
  3166. place *lookup_label(const char *label)
  3167. {
  3168.   saved_state *state = current_saved_state;
  3169.   PTABLE(place) *tbl = current_table;
  3170.   for (;;) {
  3171.     place *pl = tbl->lookup(label);
  3172.     if (pl)
  3173.       return pl;
  3174.     if (!state)
  3175.       return 0;
  3176.     tbl = state->tbl;
  3177.     state = state->prev;
  3178.   }
  3179. }
  3180.  
  3181. void define_label(const char *label, const place *pl)
  3182. {
  3183.   place *p = new place;
  3184.   *p = *pl;
  3185.   current_table->define(label, p);
  3186. }
  3187.  
  3188. int lookup_variable(const char *name, double *val)
  3189. {
  3190.   place *pl = lookup_label(name);
  3191.   if (pl) {
  3192.     *val = pl->x;
  3193.     return 1;
  3194.   }
  3195.   return 0;
  3196. }
  3197.  
  3198. void define_variable(const char *name, double val)
  3199. {
  3200.   place *p = new place;
  3201.   p->obj = 0;
  3202.   p->x = val;
  3203.   p->y = 0.0;
  3204.   current_table->define(name, p);
  3205.   if (strcmp(name, "scale") == 0) {
  3206.     // When the scale changes, reset all scaled pre-defined variables to
  3207.     // their default values.
  3208.     for (int i = 0; i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++) 
  3209.       if (defaults_table[i].scaled)
  3210.     define_variable(defaults_table[i].name, val*defaults_table[i].val);
  3211.   }
  3212. }
  3213.  
  3214. // called once only (not once per parse)
  3215.  
  3216. void parse_init()
  3217. {
  3218.   current_direction = RIGHT_DIRECTION;
  3219.   current_position.x = 0.0;
  3220.   current_position.y = 0.0;
  3221.   // This resets everything to its default value.
  3222.   reset_all();
  3223. }
  3224.  
  3225. void reset(const char *nm)
  3226. {
  3227.   for (int i = 0; i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
  3228.     if (strcmp(nm, defaults_table[i].name) == 0) {
  3229.       double val = defaults_table[i].val;
  3230.       if (defaults_table[i].scaled) {
  3231.     double scale;
  3232.     lookup_variable("scale", &scale);
  3233.     val *= scale;
  3234.       }
  3235.       define_variable(defaults_table[i].name, val);
  3236.       return;
  3237.     }
  3238.   lex_error("`%1' is not a predefined variable", nm);
  3239. }
  3240.  
  3241. void reset_all()
  3242. {
  3243.   // We only have to explicitly reset the pre-defined variables that
  3244.   // aren't scaled because `scale' is not scaled, and changing the
  3245.   // value of `scale' will reset all the pre-defined variables that
  3246.   // are scaled.
  3247.   for (int i = 0; i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
  3248.     if (!defaults_table[i].scaled)
  3249.       define_variable(defaults_table[i].name, defaults_table[i].val);
  3250. }
  3251.  
  3252. // called after each parse
  3253.  
  3254. void parse_cleanup()
  3255. {
  3256.   while (current_saved_state != 0) {
  3257.     delete current_table;
  3258.     current_table = current_saved_state->tbl;
  3259.     saved_state *tem = current_saved_state;
  3260.     current_saved_state = current_saved_state->prev;
  3261.     delete tem;
  3262.   }
  3263.   assert(current_table == &top_table);
  3264.   PTABLE_ITERATOR(place) iter(current_table);
  3265.   const char *key;
  3266.   place *pl;
  3267.   while (iter.next(&key, &pl))
  3268.     if (pl->obj != 0) {
  3269.       position pos = pl->obj->origin();
  3270.       pl->obj = 0;
  3271.       pl->x = pos.x;
  3272.       pl->y = pos.y;
  3273.     }
  3274.   while (olist.head != 0) {
  3275.     object *tem = olist.head;
  3276.     olist.head = olist.head->next;
  3277.     delete tem;
  3278.   }
  3279.   olist.tail = 0;
  3280.   current_direction = RIGHT_DIRECTION;
  3281.   current_position.x = 0.0;
  3282.   current_position.y = 0.0;
  3283. }
  3284.  
  3285. const char *ordinal_postfix(int n)
  3286. {
  3287.   if (n < 10 || n > 20)
  3288.     switch (n % 10) {
  3289.     case 1:
  3290.       return "st";
  3291.     case 2:
  3292.       return "nd";
  3293.     case 3:
  3294.       return "rd";
  3295.     }
  3296.   return "th";
  3297. }
  3298.  
  3299. const char *object_type_name(object_type type)
  3300. {
  3301.   switch (type) {
  3302.   case BOX_OBJECT:
  3303.     return "box";
  3304.   case CIRCLE_OBJECT:
  3305.     return "circle";
  3306.   case ELLIPSE_OBJECT:
  3307.     return "ellipse";
  3308.   case ARC_OBJECT:
  3309.     return "arc";
  3310.   case SPLINE_OBJECT:
  3311.     return "spline";
  3312.   case LINE_OBJECT:
  3313.     return "line";
  3314.   case ARROW_OBJECT:
  3315.     return "arrow";
  3316.   case MOVE_OBJECT:
  3317.     return "move";
  3318.   case TEXT_OBJECT:
  3319.     return "\"\"";
  3320.   case BLOCK_OBJECT:
  3321.     return "[]";
  3322.   case OTHER_OBJECT:
  3323.   case MARK_OBJECT:
  3324.   default:
  3325.     break;
  3326.   }
  3327.   return "object";
  3328. }
  3329.  
  3330. static char sprintf_buf[1024];
  3331.  
  3332. char *format_number(const char *form, double n)
  3333. {
  3334.   if (form == 0)
  3335.     form = "%g";
  3336.   else {
  3337.     // this is a fairly feeble attempt at validation of the format
  3338.     int nspecs = 0;
  3339.     for (const char *p = form; *p != '\0'; p++)
  3340.       if (*p == '%') {
  3341.     if (p[1] == '%')
  3342.       p++;
  3343.     else
  3344.       nspecs++;
  3345.       }
  3346.     if (nspecs > 1) {
  3347.       lex_error("bad format `%1'", form);
  3348.       return strsave(form);
  3349.     }
  3350.   }
  3351.   sprintf(sprintf_buf, form, n);
  3352.   return strsave(sprintf_buf);
  3353. }
  3354.  
  3355. char *do_sprintf(const char *form, const double *v, int nv)
  3356. {
  3357.   string result;
  3358.   int i = 0;
  3359.   string one_format;
  3360.   while (*form) {
  3361.     if (*form == '%') {
  3362.       one_format += *form++;
  3363.       for (; *form != '\0' && strchr("#-+ 0123456789.", *form) != 0; form++)
  3364.     one_format += *form;
  3365.       if (*form == '\0' || strchr("eEfgG%", *form) == 0) {
  3366.     lex_error("bad sprintf format");
  3367.     result += one_format;
  3368.     result += form;
  3369.     break;
  3370.       }
  3371.       if (*form == '%') {
  3372.     one_format += *form++;
  3373.     one_format += '\0';
  3374.     sprintf(sprintf_buf, one_format.contents());
  3375.       }
  3376.       else {
  3377.     if (i >= nv) {
  3378.       lex_error("too few arguments to sprintf");
  3379.       result += one_format;
  3380.       result += form;
  3381.       break;
  3382.     }
  3383.     one_format += *form++;
  3384.     one_format += '\0';
  3385.     sprintf(sprintf_buf, one_format.contents(), v[i++]);
  3386.       }
  3387.       one_format.clear();
  3388.       result += sprintf_buf;
  3389.     }
  3390.     else
  3391.       result += *form++;
  3392.   }
  3393.   result += '\0';
  3394.   return strsave(result.contents());
  3395. }
  3396. #line 3397 "y.tab.c"
  3397. #define YYABORT goto yyabort
  3398. #define YYACCEPT goto yyaccept
  3399. #define YYERROR goto yyerrlab
  3400.  
  3401. #if YYDEBUG
  3402. #ifdef __cplusplus
  3403. extern "C" char *getenv();
  3404. #else
  3405. extern char *getenv();
  3406. #endif
  3407. #endif
  3408.  
  3409. int
  3410. yyparse()
  3411. {
  3412.     register int yym, yyn, yystate;
  3413.     register YYSTYPE *yyvsp;
  3414.     register short *yyssp;
  3415.     short *yysse;
  3416. #if YYDEBUG
  3417.     register YYCONST char *yys;
  3418.  
  3419.     if (yys = getenv("YYDEBUG"))
  3420.     {
  3421.         yyn = *yys;
  3422.         if (yyn >= '0' && yyn <= '9')
  3423.             yydebug = yyn - '0';
  3424.     }
  3425. #endif
  3426.  
  3427.     yynerrs = 0;
  3428.     yyerrflag = 0;
  3429.     yychar = (-1);
  3430.  
  3431.     if (yyss == 0)
  3432.     {
  3433.         yyss = (short *) yymalloc (YYINITDEPTH * sizeof (short));
  3434.         if (yyss == 0)
  3435.           goto yyabort;
  3436.         yyvs = (YYSTYPE *) yymalloc (YYINITDEPTH * sizeof (YYSTYPE));
  3437.         if (yyvs == 0)
  3438.         {
  3439.             yyfree (yyss);
  3440.             goto yyabort;
  3441.         }
  3442.         yystacksize = YYINITDEPTH;
  3443.     }
  3444.     yysse = yyss + yystacksize - 1;
  3445.     yyssp = yyss;
  3446.     yyvsp = yyvs;
  3447.     *yyssp = yystate = 0;
  3448.  
  3449. yyloop:
  3450.     if (yyn = yydefred[yystate]) goto yyreduce;
  3451.     if (yychar < 0)
  3452.     {
  3453.         if ((yychar = yylex()) < 0) yychar = 0;
  3454. #if YYDEBUG
  3455.         if (yydebug)
  3456.         {
  3457.             yys = 0;
  3458.             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  3459.             if (!yys) yys = "illegal-symbol";
  3460.             printf("yydebug: state %d, reading %d (%s)\n", yystate,
  3461.                     yychar, yys);
  3462.         }
  3463. #endif
  3464.     }
  3465.     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
  3466.             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  3467.     {
  3468. #if YYDEBUG
  3469.         if (yydebug)
  3470.             printf("yydebug: state %d, shifting to state %d\n",
  3471.                     yystate, yytable[yyn]);
  3472. #endif
  3473.         if (yyssp >= yysse)
  3474.         {
  3475.             /* FIXME: Rework so there's only one of these.  */
  3476.             int depth = yyssp - yyss;
  3477.             if (yygrow () != 0)
  3478.               goto yyoverflow;
  3479.             yysse = yyss + yystacksize - 1;
  3480.             yyssp = yyss + depth;
  3481.             yyvsp = yyvs + depth;
  3482.         }
  3483.         *++yyssp = yystate = yytable[yyn];
  3484.         *++yyvsp = yylval;
  3485.         yychar = (-1);
  3486.         if (yyerrflag > 0)  --yyerrflag;
  3487.         goto yyloop;
  3488.     }
  3489.     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
  3490.             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  3491.     {
  3492.         yyn = yytable[yyn];
  3493.         goto yyreduce;
  3494.     }
  3495.     if (yyerrflag) goto yyinrecovery;
  3496. #ifdef lint
  3497.     goto yynewerror;
  3498. #endif
  3499. yynewerror:
  3500.     yyerror("syntax error");
  3501. #ifdef lint
  3502.     goto yyerrlab;
  3503. #endif
  3504. yyerrlab:
  3505.     ++yynerrs;
  3506. yyinrecovery:
  3507.     if (yyerrflag < 3)
  3508.     {
  3509.         yyerrflag = 3;
  3510.         for (;;)
  3511.         {
  3512.             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
  3513.                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
  3514.             {
  3515. #if YYDEBUG
  3516.                 if (yydebug)
  3517.                     printf("yydebug: state %d, error recovery shifting\
  3518.  to state %d\n", *yyssp, yytable[yyn]);
  3519. #endif
  3520.                 if (yyssp >= yysse)
  3521.                 {
  3522.                     int depth = yyssp - yyss;
  3523.                     if (yygrow () != 0)
  3524.                       goto yyoverflow;
  3525.                     yysse = yyss + yystacksize - 1;
  3526.                     yyssp = yyss + depth;
  3527.                     yyvsp = yyvs + depth;
  3528.                 }
  3529.                 *++yyssp = yystate = yytable[yyn];
  3530.                 *++yyvsp = yylval;
  3531.                 goto yyloop;
  3532.             }
  3533.             else
  3534.             {
  3535. #if YYDEBUG
  3536.                 if (yydebug)
  3537.                     printf("yydebug: error recovery discarding state %d\n",
  3538.                             *yyssp);
  3539. #endif
  3540.                 if (yyssp <= yyss) goto yyabort;
  3541.                 --yyssp;
  3542.                 --yyvsp;
  3543.             }
  3544.         }
  3545.     }
  3546.     else
  3547.     {
  3548.         if (yychar == 0) goto yyabort;
  3549. #if YYDEBUG
  3550.         if (yydebug)
  3551.         {
  3552.             yys = 0;
  3553.             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  3554.             if (!yys) yys = "illegal-symbol";
  3555.             printf("yydebug: state %d, error recovery discards token %d (%s)\n",
  3556.                     yystate, yychar, yys);
  3557.         }
  3558. #endif
  3559.         yychar = (-1);
  3560.         goto yyloop;
  3561.     }
  3562. yyreduce:
  3563. #if YYDEBUG
  3564.     if (yydebug)
  3565.         printf("yydebug: state %d, reducing by rule %d (%s)\n",
  3566.                 yystate, yyn, yyrule[yyn]);
  3567. #endif
  3568.     yym = yylen[yyn];
  3569.     yyval = yyvsp[1-yym];
  3570.     switch (yyn)
  3571.     {
  3572. case 2:
  3573. #line 272 "pic.y"
  3574. {
  3575.           if (olist.head)
  3576.             print_picture(olist.head);
  3577.         }
  3578. break;
  3579. case 3:
  3580. #line 281 "pic.y"
  3581. { yyval.pl = yyvsp[-1].pl; }
  3582. break;
  3583. case 4:
  3584. #line 286 "pic.y"
  3585. { yyval.pl = yyvsp[0].pl; }
  3586. break;
  3587. case 5:
  3588. #line 288 "pic.y"
  3589. { yyval.pl = yyvsp[-2].pl; }
  3590. break;
  3591. case 10:
  3592. #line 303 "pic.y"
  3593. {
  3594.           define_variable(yyvsp[-2].str, yyvsp[0].x);
  3595.           a_delete yyvsp[-2].str;
  3596.         }
  3597. break;
  3598. case 11:
  3599. #line 308 "pic.y"
  3600. {
  3601.           place *p = lookup_label(yyvsp[-3].str);
  3602.           if (!p) {
  3603.             lex_error("variable `%1' not defined", yyvsp[-3].str);
  3604.             YYABORT;
  3605.           }
  3606.           p->obj = 0;
  3607.           p->x = yyvsp[0].x;
  3608.           p->y = 0.0;
  3609.           a_delete yyvsp[-3].str;
  3610.         }
  3611. break;
  3612. case 12:
  3613. #line 320 "pic.y"
  3614. { current_direction = UP_DIRECTION; }
  3615. break;
  3616. case 13:
  3617. #line 322 "pic.y"
  3618. { current_direction = DOWN_DIRECTION; }
  3619. break;
  3620. case 14:
  3621. #line 324 "pic.y"
  3622. { current_direction = LEFT_DIRECTION; }
  3623. break;
  3624. case 15:
  3625. #line 326 "pic.y"
  3626. { current_direction = RIGHT_DIRECTION; }
  3627. break;
  3628. case 16:
  3629. #line 328 "pic.y"
  3630. {
  3631.           olist.append(make_command_object(yyvsp[0].lstr.str, yyvsp[0].lstr.filename,
  3632.                            yyvsp[0].lstr.lineno));
  3633.         }
  3634. break;
  3635. case 17:
  3636. #line 333 "pic.y"
  3637. {
  3638.           olist.append(make_command_object(yyvsp[0].lstr.str, yyvsp[0].lstr.filename,
  3639.                            yyvsp[0].lstr.lineno));
  3640.         }
  3641. break;
  3642. case 18:
  3643. #line 338 "pic.y"
  3644. {
  3645.           fprintf(stderr, "%s\n", yyvsp[0].lstr.str);
  3646.           a_delete yyvsp[0].lstr.str;
  3647.               fflush(stderr);
  3648.         }
  3649. break;
  3650. case 19:
  3651. #line 344 "pic.y"
  3652. { delim_flag = 1; }
  3653. break;
  3654. case 20:
  3655. #line 346 "pic.y"
  3656. {
  3657.           delim_flag = 0;
  3658.           if (safer_flag)
  3659.             lex_error("unsafe to run command `%1'", yyvsp[0].str);
  3660.           else
  3661.             system(yyvsp[0].str);
  3662.           a_delete yyvsp[0].str;
  3663.         }
  3664. break;
  3665. case 21:
  3666. #line 355 "pic.y"
  3667. {
  3668.           if (yychar < 0)
  3669.             do_lookahead();
  3670.           do_copy(yyvsp[0].lstr.str);
  3671.           /* do not delete the filename*/
  3672.         }
  3673. break;
  3674. case 22:
  3675. #line 362 "pic.y"
  3676. { delim_flag = 2; }
  3677. break;
  3678. case 23:
  3679. #line 364 "pic.y"
  3680. { delim_flag = 0; }
  3681. break;
  3682. case 24:
  3683. #line 366 "pic.y"
  3684. {
  3685.           if (yychar < 0)
  3686.             do_lookahead();
  3687.           copy_file_thru(yyvsp[-5].lstr.str, yyvsp[-2].str, yyvsp[0].str);
  3688.           /* do not delete the filename*/
  3689.           a_delete yyvsp[-2].str;
  3690.           a_delete yyvsp[0].str;
  3691.         }
  3692. break;
  3693. case 25:
  3694. #line 375 "pic.y"
  3695. { delim_flag = 2; }
  3696. break;
  3697. case 26:
  3698. #line 377 "pic.y"
  3699. { delim_flag = 0; }
  3700. break;
  3701. case 27:
  3702. #line 379 "pic.y"
  3703. {
  3704.           if (yychar < 0)
  3705.             do_lookahead();
  3706.           copy_rest_thru(yyvsp[-2].str, yyvsp[0].str);
  3707.           a_delete yyvsp[-2].str;
  3708.           a_delete yyvsp[0].str;
  3709.         }
  3710. break;
  3711. case 28:
  3712. #line 387 "pic.y"
  3713. { delim_flag = 1; }
  3714. break;
  3715. case 29:
  3716. #line 389 "pic.y"
  3717. {
  3718.           delim_flag = 0;
  3719.           if (yychar < 0)
  3720.             do_lookahead();
  3721.           do_for(yyvsp[-8].str, yyvsp[-6].x, yyvsp[-4].x, yyvsp[-3].by.is_multiplicative, yyvsp[-3].by.val, yyvsp[0].str); 
  3722.         }
  3723. break;
  3724. case 30:
  3725. #line 396 "pic.y"
  3726. {
  3727.           if (yychar < 0)
  3728.             do_lookahead();
  3729.           if (yyvsp[0].if_data.x != 0.0)
  3730.             push_body(yyvsp[0].if_data.body);
  3731.           a_delete yyvsp[0].if_data.body;
  3732.         }
  3733. break;
  3734. case 31:
  3735. #line 404 "pic.y"
  3736. { delim_flag = 1; }
  3737. break;
  3738. case 32:
  3739. #line 406 "pic.y"
  3740. {
  3741.           delim_flag = 0;
  3742.           if (yychar < 0)
  3743.             do_lookahead();
  3744.           if (yyvsp[-3].if_data.x != 0.0)
  3745.             push_body(yyvsp[-3].if_data.body);
  3746.           else
  3747.             push_body(yyvsp[0].str);
  3748.           a_delete yyvsp[-3].if_data.body;
  3749.           a_delete yyvsp[0].str;
  3750.         }
  3751. break;
  3752. case 34:
  3753. #line 419 "pic.y"
  3754. { define_variable("scale", 1.0); }
  3755. break;
  3756. case 35:
  3757. #line 424 "pic.y"
  3758. { reset(yyvsp[0].str); a_delete yyvsp[0].str; }
  3759. break;
  3760. case 36:
  3761. #line 426 "pic.y"
  3762. { reset(yyvsp[0].str); a_delete yyvsp[0].str; }
  3763. break;
  3764. case 37:
  3765. #line 428 "pic.y"
  3766. { reset(yyvsp[0].str); a_delete yyvsp[0].str; }
  3767. break;
  3768. case 38:
  3769. #line 433 "pic.y"
  3770. { yyval.lstr = yyvsp[0].lstr; }
  3771. break;
  3772. case 39:
  3773. #line 435 "pic.y"
  3774. {
  3775.           yyval.lstr.str = new char[strlen(yyvsp[-1].lstr.str) + strlen(yyvsp[0].lstr.str) + 1];
  3776.           strcpy(yyval.lstr.str, yyvsp[-1].lstr.str);
  3777.           strcat(yyval.lstr.str, yyvsp[0].lstr.str);
  3778.           a_delete yyvsp[-1].lstr.str;
  3779.           a_delete yyvsp[0].lstr.str;
  3780.           if (yyvsp[-1].lstr.filename) {
  3781.             yyval.lstr.filename = yyvsp[-1].lstr.filename;
  3782.             yyval.lstr.lineno = yyvsp[-1].lstr.lineno;
  3783.           }
  3784.           else if (yyvsp[0].lstr.filename) {
  3785.             yyval.lstr.filename = yyvsp[0].lstr.filename;
  3786.             yyval.lstr.lineno = yyvsp[0].lstr.lineno;
  3787.           }
  3788.         }
  3789. break;
  3790. case 40:
  3791. #line 454 "pic.y"
  3792. {
  3793.           yyval.lstr.str = new char[GDIGITS + 1];
  3794.           sprintf(yyval.lstr.str, "%g", yyvsp[0].x);
  3795.           yyval.lstr.filename = 0;
  3796.           yyval.lstr.lineno = 0;
  3797.         }
  3798. break;
  3799. case 41:
  3800. #line 461 "pic.y"
  3801. { yyval.lstr = yyvsp[0].lstr; }
  3802. break;
  3803. case 42:
  3804. #line 463 "pic.y"
  3805. {
  3806.           yyval.lstr.str = new char[GDIGITS + 2 + GDIGITS + 1];
  3807.           sprintf(yyval.lstr.str, "%g, %g", yyvsp[0].pair.x, yyvsp[0].pair.y);
  3808.           yyval.lstr.filename = 0;
  3809.           yyval.lstr.lineno = 0;
  3810.         }
  3811. break;
  3812. case 43:
  3813. #line 472 "pic.y"
  3814. { delim_flag = 1; }
  3815. break;
  3816. case 44:
  3817. #line 474 "pic.y"
  3818. { delim_flag = 0; yyval.if_data.x = yyvsp[-3].x; yyval.if_data.body = yyvsp[0].str; }
  3819. break;
  3820. case 45:
  3821. #line 479 "pic.y"
  3822. { yyval.str = 0; }
  3823. break;
  3824. case 46:
  3825. #line 481 "pic.y"
  3826. { yyval.str = yyvsp[0].lstr.str; }
  3827. break;
  3828. case 47:
  3829. #line 486 "pic.y"
  3830. { yyval.x = yyvsp[0].x; }
  3831. break;
  3832. case 48:
  3833. #line 488 "pic.y"
  3834. { yyval.x = yyvsp[0].x; }
  3835. break;
  3836. case 49:
  3837. #line 493 "pic.y"
  3838. {
  3839.           yyval.x = strcmp(yyvsp[-2].lstr.str, yyvsp[0].lstr.str) == 0;
  3840.           a_delete yyvsp[-2].lstr.str;
  3841.           a_delete yyvsp[0].lstr.str;
  3842.         }
  3843. break;
  3844. case 50:
  3845. #line 499 "pic.y"
  3846. {
  3847.           yyval.x = strcmp(yyvsp[-2].lstr.str, yyvsp[0].lstr.str) != 0;
  3848.           a_delete yyvsp[-2].lstr.str;
  3849.           a_delete yyvsp[0].lstr.str;
  3850.         }
  3851. break;
  3852. case 51:
  3853. #line 505 "pic.y"
  3854. { yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
  3855. break;
  3856. case 52:
  3857. #line 507 "pic.y"
  3858. { yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
  3859. break;
  3860. case 53:
  3861. #line 509 "pic.y"
  3862. { yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
  3863. break;
  3864. case 54:
  3865. #line 511 "pic.y"
  3866. { yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
  3867. break;
  3868. case 55:
  3869. #line 513 "pic.y"
  3870. { yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
  3871. break;
  3872. case 56:
  3873. #line 515 "pic.y"
  3874. { yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
  3875. break;
  3876. case 57:
  3877. #line 517 "pic.y"
  3878. { yyval.x = (yyvsp[0].x == 0.0); }
  3879. break;
  3880. case 58:
  3881. #line 523 "pic.y"
  3882. { yyval.by.val = 1.0; yyval.by.is_multiplicative = 0; }
  3883. break;
  3884. case 59:
  3885. #line 525 "pic.y"
  3886. { yyval.by.val = yyvsp[0].x; yyval.by.is_multiplicative = 0; }
  3887. break;
  3888. case 60:
  3889. #line 527 "pic.y"
  3890. { yyval.by.val = yyvsp[0].x; yyval.by.is_multiplicative = 1; }
  3891. break;
  3892. case 61:
  3893. #line 532 "pic.y"
  3894. {
  3895.           yyval.pl.obj = yyvsp[0].spec->make_object(¤t_position,
  3896.                        ¤t_direction);
  3897.           if (yyval.pl.obj == 0)
  3898.             YYABORT;
  3899.           delete yyvsp[0].spec;
  3900.           if (yyval.pl.obj)
  3901.             olist.append(yyval.pl.obj);
  3902.           else {
  3903.             yyval.pl.x = current_position.x;
  3904.             yyval.pl.y = current_position.y;
  3905.           }
  3906.         }
  3907. break;
  3908. case 62:
  3909. #line 546 "pic.y"
  3910. { yyval.pl = yyvsp[0].pl; define_label(yyvsp[-3].str, & yyval.pl); a_delete yyvsp[-3].str; }
  3911. break;
  3912. case 63:
  3913. #line 548 "pic.y"
  3914. {
  3915.           yyval.pl.obj = 0;
  3916.           yyval.pl.x = yyvsp[0].pair.x;
  3917.           yyval.pl.y = yyvsp[0].pair.y;
  3918.           define_label(yyvsp[-3].str, & yyval.pl);
  3919.           a_delete yyvsp[-3].str;
  3920.         }
  3921. break;
  3922. case 64:
  3923. #line 556 "pic.y"
  3924. {
  3925.           yyval.pl = yyvsp[0].pl;
  3926.           define_label(yyvsp[-3].str, & yyval.pl);
  3927.           a_delete yyvsp[-3].str;
  3928.         }
  3929. break;
  3930. case 65:
  3931. #line 562 "pic.y"
  3932. {
  3933.           yyval.state.x = current_position.x;
  3934.           yyval.state.y = current_position.y;
  3935.           yyval.state.dir = current_direction;
  3936.         }
  3937. break;
  3938. case 66:
  3939. #line 568 "pic.y"
  3940. {
  3941.           current_position.x = yyvsp[-2].state.x;
  3942.           current_position.y = yyvsp[-2].state.y;
  3943.           current_direction = yyvsp[-2].state.dir;
  3944.         }
  3945. break;
  3946. case 67:
  3947. #line 574 "pic.y"
  3948. {
  3949.           yyval.pl = yyvsp[-3].pl;
  3950.         }
  3951. break;
  3952. case 68:
  3953. #line 578 "pic.y"
  3954. {
  3955.           yyval.pl.obj = 0;
  3956.           yyval.pl.x = current_position.x;
  3957.           yyval.pl.y = current_position.y;
  3958.         }
  3959. break;
  3960. case 69:
  3961. #line 587 "pic.y"
  3962. {}
  3963. break;
  3964. case 70:
  3965. #line 589 "pic.y"
  3966. {}
  3967. break;
  3968. case 71:
  3969. #line 594 "pic.y"
  3970. {
  3971.           yyval.spec = new object_spec(BOX_OBJECT);
  3972.         }
  3973. break;
  3974. case 72:
  3975. #line 598 "pic.y"
  3976. {
  3977.           yyval.spec = new object_spec(CIRCLE_OBJECT);
  3978.         }
  3979. break;
  3980. case 73:
  3981. #line 602 "pic.y"
  3982. {
  3983.           yyval.spec = new object_spec(ELLIPSE_OBJECT);
  3984.         }
  3985. break;
  3986. case 74:
  3987. #line 606 "pic.y"
  3988. {
  3989.           yyval.spec = new object_spec(ARC_OBJECT);
  3990.           yyval.spec->dir = current_direction;
  3991.         }
  3992. break;
  3993. case 75:
  3994. #line 611 "pic.y"
  3995. {
  3996.           yyval.spec = new object_spec(LINE_OBJECT);
  3997.           lookup_variable("lineht", & yyval.spec->segment_height);
  3998.           lookup_variable("linewid", & yyval.spec->segment_width);
  3999.           yyval.spec->dir = current_direction;
  4000.         }
  4001. break;
  4002. case 76:
  4003. #line 618 "pic.y"
  4004. {
  4005.           yyval.spec = new object_spec(ARROW_OBJECT);
  4006.           lookup_variable("lineht", & yyval.spec->segment_height);
  4007.           lookup_variable("linewid", & yyval.spec->segment_width);
  4008.           yyval.spec->dir = current_direction;
  4009.         }
  4010. break;
  4011. case 77:
  4012. #line 625 "pic.y"
  4013. {
  4014.           yyval.spec = new object_spec(MOVE_OBJECT);
  4015.           lookup_variable("moveht", & yyval.spec->segment_height);
  4016.           lookup_variable("movewid", & yyval.spec->segment_width);
  4017.           yyval.spec->dir = current_direction;
  4018.         }
  4019. break;
  4020. case 78:
  4021. #line 632 "pic.y"
  4022. {
  4023.           yyval.spec = new object_spec(SPLINE_OBJECT);
  4024.           lookup_variable("lineht", & yyval.spec->segment_height);
  4025.           lookup_variable("linewid", & yyval.spec->segment_width);
  4026.           yyval.spec->dir = current_direction;
  4027.         }
  4028. break;
  4029. case 79:
  4030. #line 639 "pic.y"
  4031. {
  4032.           yyval.spec = new object_spec(TEXT_OBJECT);
  4033.           yyval.spec->text = new text_item(yyvsp[0].lstr.str, yyvsp[0].lstr.filename, yyvsp[0].lstr.lineno);
  4034.         }
  4035. break;
  4036. case 80:
  4037. #line 644 "pic.y"
  4038. {
  4039.           yyval.spec = new object_spec(TEXT_OBJECT);
  4040.           yyval.spec->text = new text_item(format_number(0, yyvsp[0].x), 0, -1);
  4041.         }
  4042. break;
  4043. case 81:
  4044. #line 649 "pic.y"
  4045. {
  4046.           yyval.spec = new object_spec(TEXT_OBJECT);
  4047.           yyval.spec->text = new text_item(format_number(yyvsp[0].lstr.str, yyvsp[-1].x),
  4048.                        yyvsp[0].lstr.filename, yyvsp[0].lstr.lineno);
  4049.           a_delete yyvsp[0].lstr.str;
  4050.         }
  4051. break;
  4052. case 82:
  4053. #line 656 "pic.y"
  4054. {
  4055.           saved_state *p = new saved_state;
  4056.           yyval.pstate = p;
  4057.           p->x = current_position.x;
  4058.           p->y = current_position.y;
  4059.           p->dir = current_direction;
  4060.           p->tbl = current_table;
  4061.           p->prev = current_saved_state;
  4062.           current_position.x = 0.0;
  4063.           current_position.y = 0.0;
  4064.           current_table = new PTABLE(place);
  4065.           current_saved_state = p;
  4066.           olist.append(make_mark_object());
  4067.         }
  4068. break;
  4069. case 83:
  4070. #line 671 "pic.y"
  4071. {
  4072.           current_position.x = yyvsp[-2].pstate->x;
  4073.           current_position.y = yyvsp[-2].pstate->y;
  4074.           current_direction = yyvsp[-2].pstate->dir;
  4075.           yyval.spec = new object_spec(BLOCK_OBJECT);
  4076.           olist.wrap_up_block(& yyval.spec->oblist);
  4077.           yyval.spec->tbl = current_table;
  4078.           current_table = yyvsp[-2].pstate->tbl;
  4079.           current_saved_state = yyvsp[-2].pstate->prev;
  4080.           delete yyvsp[-2].pstate;
  4081.         }
  4082. break;
  4083. case 84:
  4084. #line 683 "pic.y"
  4085. {
  4086.           yyval.spec = yyvsp[-2].spec;
  4087.           yyval.spec->height = yyvsp[0].x;
  4088.           yyval.spec->flags |= HAS_HEIGHT;
  4089.         }
  4090. break;
  4091. case 85:
  4092. #line 689 "pic.y"
  4093. {
  4094.           yyval.spec = yyvsp[-2].spec;
  4095.           yyval.spec->radius = yyvsp[0].x;
  4096.           yyval.spec->flags |= HAS_RADIUS;
  4097.         }
  4098. break;
  4099. case 86:
  4100. #line 695 "pic.y"
  4101. {
  4102.           yyval.spec = yyvsp[-2].spec;
  4103.           yyval.spec->width = yyvsp[0].x;
  4104.           yyval.spec->flags |= HAS_WIDTH;
  4105.         }
  4106. break;
  4107. case 87:
  4108. #line 701 "pic.y"
  4109. {
  4110.           yyval.spec = yyvsp[-2].spec;
  4111.           yyval.spec->radius = yyvsp[0].x/2.0;
  4112.           yyval.spec->flags |= HAS_RADIUS;
  4113.         }
  4114. break;
  4115. case 88:
  4116. #line 707 "pic.y"
  4117. {
  4118.           yyval.spec = yyvsp[-1].spec;
  4119.           yyval.spec->flags |= HAS_SEGMENT;
  4120.           switch (yyval.spec->dir) {
  4121.           case UP_DIRECTION:
  4122.             yyval.spec->segment_pos.y += yyvsp[0].x;
  4123.             break;
  4124.           case DOWN_DIRECTION:
  4125.             yyval.spec->segment_pos.y -= yyvsp[0].x;
  4126.             break;
  4127.           case RIGHT_DIRECTION:
  4128.             yyval.spec->segment_pos.x += yyvsp[0].x;
  4129.             break;
  4130.           case LEFT_DIRECTION:
  4131.             yyval.spec->segment_pos.x -= yyvsp[0].x;
  4132.             break;
  4133.           }
  4134.         }
  4135. break;
  4136. case 89:
  4137. #line 726 "pic.y"
  4138. {
  4139.           yyval.spec = yyvsp[-1].spec;
  4140.           yyval.spec->dir = UP_DIRECTION;
  4141.           yyval.spec->flags |= HAS_SEGMENT;
  4142.           yyval.spec->segment_pos.y += yyval.spec->segment_height;
  4143.         }
  4144. break;
  4145. case 90:
  4146. #line 733 "pic.y"
  4147. {
  4148.           yyval.spec = yyvsp[-2].spec;
  4149.           yyval.spec->dir = UP_DIRECTION;
  4150.           yyval.spec->flags |= HAS_SEGMENT;
  4151.           yyval.spec->segment_pos.y += yyvsp[0].x;
  4152.         }
  4153. break;
  4154. case 91:
  4155. #line 740 "pic.y"
  4156. {
  4157.           yyval.spec = yyvsp[-1].spec;
  4158.           yyval.spec->dir = DOWN_DIRECTION;
  4159.           yyval.spec->flags |= HAS_SEGMENT;
  4160.           yyval.spec->segment_pos.y -= yyval.spec->segment_height;
  4161.         }
  4162. break;
  4163. case 92:
  4164. #line 747 "pic.y"
  4165. {
  4166.           yyval.spec = yyvsp[-2].spec;
  4167.           yyval.spec->dir = DOWN_DIRECTION;
  4168.           yyval.spec->flags |= HAS_SEGMENT;
  4169.           yyval.spec->segment_pos.y -= yyvsp[0].x;
  4170.         }
  4171. break;
  4172. case 93:
  4173. #line 754 "pic.y"
  4174. {
  4175.           yyval.spec = yyvsp[-1].spec;
  4176.           yyval.spec->dir = RIGHT_DIRECTION;
  4177.           yyval.spec->flags |= HAS_SEGMENT;
  4178.           yyval.spec->segment_pos.x += yyval.spec->segment_width;
  4179.         }
  4180. break;
  4181. case 94:
  4182. #line 761 "pic.y"
  4183. {
  4184.           yyval.spec = yyvsp[-2].spec;
  4185.           yyval.spec->dir = RIGHT_DIRECTION;
  4186.           yyval.spec->flags |= HAS_SEGMENT;
  4187.           yyval.spec->segment_pos.x += yyvsp[0].x;
  4188.         }
  4189. break;
  4190. case 95:
  4191. #line 768 "pic.y"
  4192. {
  4193.           yyval.spec = yyvsp[-1].spec;
  4194.           yyval.spec->dir = LEFT_DIRECTION;
  4195.           yyval.spec->flags |= HAS_SEGMENT;
  4196.           yyval.spec->segment_pos.x -= yyval.spec->segment_width;
  4197.         }
  4198. break;
  4199. case 96:
  4200. #line 775 "pic.y"
  4201. {
  4202.           yyval.spec = yyvsp[-2].spec;
  4203.           yyval.spec->dir = LEFT_DIRECTION;
  4204.           yyval.spec->flags |= HAS_SEGMENT;
  4205.           yyval.spec->segment_pos.x -= yyvsp[0].x;
  4206.         }
  4207. break;
  4208. case 97:
  4209. #line 782 "pic.y"
  4210. {
  4211.           yyval.spec = yyvsp[-2].spec;
  4212.           yyval.spec->flags |= HAS_FROM;
  4213.           yyval.spec->from.x = yyvsp[0].pair.x;
  4214.           yyval.spec->from.y = yyvsp[0].pair.y;
  4215.         }
  4216. break;
  4217. case 98:
  4218. #line 789 "pic.y"
  4219. {
  4220.           yyval.spec = yyvsp[-2].spec;
  4221.           if (yyval.spec->flags & HAS_SEGMENT)
  4222.             yyval.spec->segment_list = new segment(yyval.spec->segment_pos,
  4223.                            yyval.spec->segment_is_absolute,
  4224.                            yyval.spec->segment_list);
  4225.           yyval.spec->flags |= HAS_SEGMENT;
  4226.           yyval.spec->segment_pos.x = yyvsp[0].pair.x;
  4227.           yyval.spec->segment_pos.y = yyvsp[0].pair.y;
  4228.           yyval.spec->segment_is_absolute = 1;
  4229.           yyval.spec->flags |= HAS_TO;
  4230.           yyval.spec->to.x = yyvsp[0].pair.x;
  4231.           yyval.spec->to.y = yyvsp[0].pair.y;
  4232.         }
  4233. break;
  4234. case 99:
  4235. #line 804 "pic.y"
  4236. {
  4237.           yyval.spec = yyvsp[-2].spec;
  4238.           yyval.spec->flags |= HAS_AT;
  4239.           yyval.spec->at.x = yyvsp[0].pair.x;
  4240.           yyval.spec->at.y = yyvsp[0].pair.y;
  4241.           if (yyval.spec->type != ARC_OBJECT) {
  4242.             yyval.spec->flags |= HAS_FROM;
  4243.             yyval.spec->from.x = yyvsp[0].pair.x;
  4244.             yyval.spec->from.y = yyvsp[0].pair.y;
  4245.           }
  4246.         }
  4247. break;
  4248. case 100:
  4249. #line 816 "pic.y"
  4250. {
  4251.           yyval.spec = yyvsp[-2].spec;
  4252.           yyval.spec->flags |= HAS_WITH;
  4253.           yyval.spec->with = yyvsp[0].pth;
  4254.         }
  4255. break;
  4256. case 101:
  4257. #line 822 "pic.y"
  4258. {
  4259.           yyval.spec = yyvsp[-2].spec;
  4260.           yyval.spec->flags |= HAS_SEGMENT;
  4261.           yyval.spec->segment_pos.x += yyvsp[0].pair.x;
  4262.           yyval.spec->segment_pos.y += yyvsp[0].pair.y;
  4263.         }
  4264. break;
  4265. case 102:
  4266. #line 829 "pic.y"
  4267. {
  4268.           yyval.spec = yyvsp[-1].spec;
  4269.           if (yyval.spec->flags & HAS_SEGMENT) {
  4270.             yyval.spec->segment_list = new segment(yyval.spec->segment_pos,
  4271.                            yyval.spec->segment_is_absolute,
  4272.                            yyval.spec->segment_list);
  4273.             yyval.spec->flags &= ~HAS_SEGMENT;
  4274.             yyval.spec->segment_pos.x = yyval.spec->segment_pos.y = 0.0;
  4275.             yyval.spec->segment_is_absolute = 0;
  4276.           }
  4277.         }
  4278. break;
  4279. case 103:
  4280. #line 841 "pic.y"
  4281. {
  4282.           yyval.spec = yyvsp[-1].spec;
  4283.           yyval.spec->flags |= IS_DOTTED;
  4284.           lookup_variable("dashwid", & yyval.spec->dash_width);
  4285.         }
  4286. break;
  4287. case 104:
  4288. #line 847 "pic.y"
  4289. {
  4290.           yyval.spec = yyvsp[-2].spec;
  4291.           yyval.spec->flags |= IS_DOTTED;
  4292.           yyval.spec->dash_width = yyvsp[0].x;
  4293.         }
  4294. break;
  4295. case 105:
  4296. #line 853 "pic.y"
  4297. {
  4298.           yyval.spec = yyvsp[-1].spec;
  4299.           yyval.spec->flags |= IS_DASHED;
  4300.           lookup_variable("dashwid", & yyval.spec->dash_width);
  4301.         }
  4302. break;
  4303. case 106:
  4304. #line 859 "pic.y"
  4305. {
  4306.           yyval.spec = yyvsp[-2].spec;
  4307.           yyval.spec->flags |= IS_DASHED;
  4308.           yyval.spec->dash_width = yyvsp[0].x;
  4309.         }
  4310. break;
  4311. case 107:
  4312. #line 865 "pic.y"
  4313. {
  4314.           yyval.spec = yyvsp[-1].spec;
  4315.           yyval.spec->flags |= IS_DEFAULT_FILLED;
  4316.         }
  4317. break;
  4318. case 108:
  4319. #line 870 "pic.y"
  4320. {
  4321.           yyval.spec = yyvsp[-2].spec;
  4322.           yyval.spec->flags |= IS_FILLED;
  4323.           yyval.spec->fill = yyvsp[0].x;
  4324.         }
  4325. break;
  4326. case 109:
  4327. #line 876 "pic.y"
  4328. {
  4329.           yyval.spec = yyvsp[-1].spec;
  4330.           /* line chop chop means line chop 0 chop 0*/
  4331.           if (yyval.spec->flags & IS_DEFAULT_CHOPPED) {
  4332.             yyval.spec->flags |= IS_CHOPPED;
  4333.             yyval.spec->flags &= ~IS_DEFAULT_CHOPPED;
  4334.             yyval.spec->start_chop = yyval.spec->end_chop = 0.0;
  4335.           }
  4336.           else if (yyval.spec->flags & IS_CHOPPED) {
  4337.             yyval.spec->end_chop = 0.0;
  4338.           }
  4339.           else {
  4340.             yyval.spec->flags |= IS_DEFAULT_CHOPPED;
  4341.           }
  4342.         }
  4343. break;
  4344. case 110:
  4345. #line 892 "pic.y"
  4346. {
  4347.           yyval.spec = yyvsp[-2].spec;
  4348.           if (yyval.spec->flags & IS_DEFAULT_CHOPPED) {
  4349.             yyval.spec->flags |= IS_CHOPPED;
  4350.             yyval.spec->flags &= ~IS_DEFAULT_CHOPPED;
  4351.             yyval.spec->start_chop = 0.0;
  4352.             yyval.spec->end_chop = yyvsp[0].x;
  4353.           }
  4354.           else if (yyval.spec->flags & IS_CHOPPED) {
  4355.             yyval.spec->end_chop = yyvsp[0].x;
  4356.           }
  4357.           else {
  4358.             yyval.spec->start_chop = yyval.spec->end_chop = yyvsp[0].x;
  4359.             yyval.spec->flags |= IS_CHOPPED;
  4360.           }
  4361.         }
  4362. break;
  4363. case 111:
  4364. #line 909 "pic.y"
  4365. {
  4366.           yyval.spec = yyvsp[-1].spec;
  4367.           yyval.spec->flags |= IS_SAME;
  4368.         }
  4369. break;
  4370. case 112:
  4371. #line 914 "pic.y"
  4372. {
  4373.           yyval.spec = yyvsp[-1].spec;
  4374.           yyval.spec->flags |= IS_INVISIBLE;
  4375.         }
  4376. break;
  4377. case 113:
  4378. #line 919 "pic.y"
  4379. {
  4380.           yyval.spec = yyvsp[-1].spec;
  4381.           yyval.spec->flags |= HAS_LEFT_ARROW_HEAD;
  4382.         }
  4383. break;
  4384. case 114:
  4385. #line 924 "pic.y"
  4386. {
  4387.           yyval.spec = yyvsp[-1].spec;
  4388.           yyval.spec->flags |= HAS_RIGHT_ARROW_HEAD;
  4389.         }
  4390. break;
  4391. case 115:
  4392. #line 929 "pic.y"
  4393. {
  4394.           yyval.spec = yyvsp[-1].spec;
  4395.           yyval.spec->flags |= (HAS_LEFT_ARROW_HEAD|HAS_RIGHT_ARROW_HEAD);
  4396.         }
  4397. break;
  4398. case 116:
  4399. #line 934 "pic.y"
  4400. {
  4401.           yyval.spec = yyvsp[-1].spec;
  4402.           yyval.spec->flags |= IS_CLOCKWISE;
  4403.         }
  4404. break;
  4405. case 117:
  4406. #line 939 "pic.y"
  4407. {
  4408.           yyval.spec = yyvsp[-1].spec;
  4409.           yyval.spec->flags &= ~IS_CLOCKWISE;
  4410.         }
  4411. break;
  4412. case 118:
  4413. #line 944 "pic.y"
  4414. {
  4415.           yyval.spec = yyvsp[-1].spec;
  4416.           text_item **p;
  4417.           for (p = & yyval.spec->text; *p; p = &(*p)->next)
  4418.             ;
  4419.           *p = new text_item(yyvsp[0].lstr.str, yyvsp[0].lstr.filename, yyvsp[0].lstr.lineno);
  4420.         }
  4421. break;
  4422. case 119:
  4423. #line 952 "pic.y"
  4424. {
  4425.           yyval.spec = yyvsp[-1].spec;
  4426.           if (yyval.spec->text) {
  4427.             text_item *p;
  4428.             for (p = yyval.spec->text; p->next; p = p->next)
  4429.               ;
  4430.             p->adj.h = LEFT_ADJUST;
  4431.           }
  4432.         }
  4433. break;
  4434. case 120:
  4435. #line 962 "pic.y"
  4436. {
  4437.           yyval.spec = yyvsp[-1].spec;
  4438.           if (yyval.spec->text) {
  4439.             text_item *p;
  4440.             for (p = yyval.spec->text; p->next; p = p->next)
  4441.               ;
  4442.             p->adj.h = RIGHT_ADJUST;
  4443.           }
  4444.         }
  4445. break;
  4446. case 121:
  4447. #line 972 "pic.y"
  4448. {
  4449.           yyval.spec = yyvsp[-1].spec;
  4450.           if (yyval.spec->text) {
  4451.             text_item *p;
  4452.             for (p = yyval.spec->text; p->next; p = p->next)
  4453.               ;
  4454.             p->adj.v = ABOVE_ADJUST;
  4455.           }
  4456.         }
  4457. break;
  4458. case 122:
  4459. #line 982 "pic.y"
  4460. {
  4461.           yyval.spec = yyvsp[-1].spec;
  4462.           if (yyval.spec->text) {
  4463.             text_item *p;
  4464.             for (p = yyval.spec->text; p->next; p = p->next)
  4465.               ;
  4466.             p->adj.v = BELOW_ADJUST;
  4467.           }
  4468.         }
  4469. break;
  4470. case 123:
  4471. #line 992 "pic.y"
  4472. {
  4473.           yyval.spec = yyvsp[-2].spec;
  4474.           yyval.spec->flags |= HAS_THICKNESS;
  4475.           yyval.spec->thickness = yyvsp[0].x;
  4476.         }
  4477. break;
  4478. case 124:
  4479. #line 998 "pic.y"
  4480. {
  4481.           yyval.spec = yyvsp[-1].spec;
  4482.           yyval.spec->flags |= IS_ALIGNED;
  4483.         }
  4484. break;
  4485. case 125:
  4486. #line 1006 "pic.y"
  4487. {
  4488.           yyval.lstr = yyvsp[0].lstr;
  4489.         }
  4490. break;
  4491. case 126:
  4492. #line 1010 "pic.y"
  4493. {
  4494.           yyval.lstr.filename = yyvsp[-2].lstr.filename;
  4495.           yyval.lstr.lineno = yyvsp[-2].lstr.lineno;
  4496.           yyval.lstr.str = do_sprintf(yyvsp[-2].lstr.str, yyvsp[-1].dv.v, yyvsp[-1].dv.nv);
  4497.           a_delete yyvsp[-1].dv.v;
  4498.           a_delete yyvsp[-2].lstr.str;
  4499.         }
  4500. break;
  4501. case 127:
  4502. #line 1021 "pic.y"
  4503. {
  4504.           yyval.dv.v = 0;
  4505.           yyval.dv.nv = 0;
  4506.           yyval.dv.maxv = 0;
  4507.         }
  4508. break;
  4509. case 128:
  4510. #line 1027 "pic.y"
  4511. {
  4512.           yyval.dv = yyvsp[-2].dv;
  4513.           if (yyval.dv.nv >= yyval.dv.maxv) {
  4514.             if (yyval.dv.nv == 0) {
  4515.               yyval.dv.v = new double[4];
  4516.               yyval.dv.maxv = 4;
  4517.             }
  4518.             else {
  4519.               double *oldv = yyval.dv.v;
  4520.               yyval.dv.maxv *= 2;
  4521.               yyval.dv.v = new double[yyval.dv.maxv];
  4522.               memcpy(yyval.dv.v, oldv, yyval.dv.nv*sizeof(double));
  4523.               a_delete oldv;
  4524.             }
  4525.           }
  4526.           yyval.dv.v[yyval.dv.nv] = yyvsp[0].x;
  4527.           yyval.dv.nv += 1;
  4528.         }
  4529. break;
  4530. case 129:
  4531. #line 1049 "pic.y"
  4532. { yyval.pair = yyvsp[0].pair; }
  4533. break;
  4534. case 130:
  4535. #line 1051 "pic.y"
  4536. {
  4537.           position pos = yyvsp[0].pl;
  4538.           yyval.pair.x = pos.x;
  4539.           yyval.pair.y = pos.y;
  4540.         }
  4541. break;
  4542. case 131:
  4543. #line 1060 "pic.y"
  4544. { yyval.pair = yyvsp[0].pair; }
  4545. break;
  4546. case 132:
  4547. #line 1062 "pic.y"
  4548. {
  4549.           yyval.pair.x = yyvsp[-2].pair.x + yyvsp[0].pair.x;
  4550.           yyval.pair.y = yyvsp[-2].pair.y + yyvsp[0].pair.y;
  4551.         }
  4552. break;
  4553. case 133:
  4554. #line 1067 "pic.y"
  4555. {
  4556.           yyval.pair.x = yyvsp[-2].pair.x - yyvsp[0].pair.x;
  4557.           yyval.pair.y = yyvsp[-2].pair.y - yyvsp[0].pair.y;
  4558.         }
  4559. break;
  4560. case 134:
  4561. #line 1072 "pic.y"
  4562. {
  4563.           yyval.pair.x = yyvsp[-3].pair.x;
  4564.           yyval.pair.y = yyvsp[-1].pair.y;
  4565.         }
  4566. break;
  4567. case 135:
  4568. #line 1077 "pic.y"
  4569. {
  4570.           yyval.pair.x = (1.0 - yyvsp[-4].x)*yyvsp[-2].pair.x + yyvsp[-4].x*yyvsp[0].pair.x;
  4571.           yyval.pair.y = (1.0 - yyvsp[-4].x)*yyvsp[-2].pair.y + yyvsp[-4].x*yyvsp[0].pair.y;
  4572.         }
  4573. break;
  4574. case 136:
  4575. #line 1082 "pic.y"
  4576. {
  4577.           yyval.pair.x = (1.0 - yyvsp[-5].x)*yyvsp[-3].pair.x + yyvsp[-5].x*yyvsp[-1].pair.x;
  4578.           yyval.pair.y = (1.0 - yyvsp[-5].x)*yyvsp[-3].pair.y + yyvsp[-5].x*yyvsp[-1].pair.y;
  4579.         }
  4580. break;
  4581. case 139:
  4582. #line 1095 "pic.y"
  4583. { yyval.pair.x = yyvsp[-2].x; yyval.pair.y = yyvsp[0].x; }
  4584. break;
  4585. case 140:
  4586. #line 1097 "pic.y"
  4587. { yyval.pair = yyvsp[-1].pair; }
  4588. break;
  4589. case 141:
  4590. #line 1102 "pic.y"
  4591. { yyval.pl = yyvsp[0].pl; }
  4592. break;
  4593. case 142:
  4594. #line 1104 "pic.y"
  4595. {
  4596.           path pth(yyvsp[0].crn);
  4597.           if (!pth.follow(yyvsp[-1].pl, & yyval.pl))
  4598.             YYABORT;
  4599.         }
  4600. break;
  4601. case 143:
  4602. #line 1110 "pic.y"
  4603. {
  4604.           path pth(yyvsp[-1].crn);
  4605.           if (!pth.follow(yyvsp[0].pl, & yyval.pl))
  4606.             YYABORT;
  4607.         }
  4608. break;
  4609. case 144:
  4610. #line 1116 "pic.y"
  4611. {
  4612.           path pth(yyvsp[-2].crn);
  4613.           if (!pth.follow(yyvsp[0].pl, & yyval.pl))
  4614.             YYABORT;
  4615.         }
  4616. break;
  4617. case 145:
  4618. #line 1122 "pic.y"
  4619. {
  4620.           yyval.pl.x = current_position.x;
  4621.           yyval.pl.y = current_position.y;
  4622.           yyval.pl.obj = 0;
  4623.         }
  4624. break;
  4625. case 146:
  4626. #line 1131 "pic.y"
  4627. {
  4628.           place *p = lookup_label(yyvsp[0].str);
  4629.           if (!p) {
  4630.             lex_error("there is no place `%1'", yyvsp[0].str);
  4631.             YYABORT;
  4632.           }
  4633.           yyval.pl = *p;
  4634.           a_delete yyvsp[0].str;
  4635.         }
  4636. break;
  4637. case 147:
  4638. #line 1141 "pic.y"
  4639. {
  4640.           yyval.pl.obj = yyvsp[0].obj;
  4641.         }
  4642. break;
  4643. case 148:
  4644. #line 1145 "pic.y"
  4645. {
  4646.           path pth(yyvsp[0].str);
  4647.           if (!pth.follow(yyvsp[-2].pl, & yyval.pl))
  4648.             YYABORT;
  4649.         }
  4650. break;
  4651. case 149:
  4652. #line 1154 "pic.y"
  4653. { yyval.n = yyvsp[0].n; }
  4654. break;
  4655. case 150:
  4656. #line 1156 "pic.y"
  4657. {
  4658.           /* XXX Check for overflow (and non-integers?).*/
  4659.           yyval.n = (int)yyvsp[-1].x;
  4660.         }
  4661. break;
  4662. case 151:
  4663. #line 1164 "pic.y"
  4664. { yyval.n = 1; }
  4665. break;
  4666. case 152:
  4667. #line 1166 "pic.y"
  4668. { yyval.n = yyvsp[-1].n; }
  4669. break;
  4670. case 153:
  4671. #line 1171 "pic.y"
  4672. {
  4673.           int count = 0;
  4674.           object *p;
  4675.           for (p = olist.head; p != 0; p = p->next)
  4676.             if (p->type() == yyvsp[0].obtype && ++count == yyvsp[-1].n) {
  4677.               yyval.obj = p;
  4678.               break;
  4679.             }
  4680.           if (p == 0) {
  4681.             lex_error("there is no %1%2 %3", yyvsp[-1].n, ordinal_postfix(yyvsp[-1].n),
  4682.                   object_type_name(yyvsp[0].obtype));
  4683.             YYABORT;
  4684.           }
  4685.         }
  4686. break;
  4687. case 154:
  4688. #line 1186 "pic.y"
  4689. {
  4690.           int count = 0;
  4691.           object *p;
  4692.           for (p = olist.tail; p != 0; p = p->prev)
  4693.             if (p->type() == yyvsp[0].obtype && ++count == yyvsp[-1].n) {
  4694.               yyval.obj = p;
  4695.               break;
  4696.             }
  4697.           if (p == 0) {
  4698.             lex_error("there is no %1%2 last %3", yyvsp[-1].n,
  4699.                   ordinal_postfix(yyvsp[-1].n), object_type_name(yyvsp[0].obtype));
  4700.             YYABORT;
  4701.           }
  4702.         }
  4703. break;
  4704. case 155:
  4705. #line 1204 "pic.y"
  4706. { yyval.obtype = BOX_OBJECT; }
  4707. break;
  4708. case 156:
  4709. #line 1206 "pic.y"
  4710. { yyval.obtype = CIRCLE_OBJECT; }
  4711. break;
  4712. case 157:
  4713. #line 1208 "pic.y"
  4714. { yyval.obtype = ELLIPSE_OBJECT; }
  4715. break;
  4716. case 158:
  4717. #line 1210 "pic.y"
  4718. { yyval.obtype = ARC_OBJECT; }
  4719. break;
  4720. case 159:
  4721. #line 1212 "pic.y"
  4722. { yyval.obtype = LINE_OBJECT; }
  4723. break;
  4724. case 160:
  4725. #line 1214 "pic.y"
  4726. { yyval.obtype = ARROW_OBJECT; }
  4727. break;
  4728. case 161:
  4729. #line 1216 "pic.y"
  4730. { yyval.obtype = SPLINE_OBJECT; }
  4731. break;
  4732. case 162:
  4733. #line 1218 "pic.y"
  4734. { yyval.obtype = BLOCK_OBJECT; }
  4735. break;
  4736. case 163:
  4737. #line 1220 "pic.y"
  4738. { yyval.obtype = TEXT_OBJECT; }
  4739. break;
  4740. case 164:
  4741. #line 1225 "pic.y"
  4742. {
  4743.           yyval.pth = new path(yyvsp[0].str);
  4744.         }
  4745. break;
  4746. case 165:
  4747. #line 1229 "pic.y"
  4748. {
  4749.           yyval.pth = yyvsp[-2].pth;
  4750.           yyval.pth->append(yyvsp[0].str);
  4751.         }
  4752. break;
  4753. case 166:
  4754. #line 1237 "pic.y"
  4755. {
  4756.           yyval.pth = new path(yyvsp[0].crn);
  4757.         }
  4758. break;
  4759. case 167:
  4760. #line 1244 "pic.y"
  4761. {
  4762.           yyval.pth = yyvsp[0].pth;
  4763.         }
  4764. break;
  4765. case 168:
  4766. #line 1248 "pic.y"
  4767. {
  4768.           yyval.pth = yyvsp[-1].pth;
  4769.           yyval.pth->append(yyvsp[0].crn);
  4770.         }
  4771. break;
  4772. case 169:
  4773. #line 1256 "pic.y"
  4774. {
  4775.           yyval.pth = yyvsp[0].pth;
  4776.         }
  4777. break;
  4778. case 170:
  4779. #line 1260 "pic.y"
  4780. {
  4781.           yyval.pth = yyvsp[-3].pth;
  4782.           yyval.pth->set_ypath(yyvsp[-1].pth);
  4783.         }
  4784. break;
  4785. case 171:
  4786. #line 1266 "pic.y"
  4787. {
  4788.           lex_warning("`%1%2 last %3' in `with' argument ignored",
  4789.                   yyvsp[-3].n, ordinal_postfix(yyvsp[-3].n), object_type_name(yyvsp[-1].obtype));
  4790.           yyval.pth = yyvsp[0].pth;
  4791.         }
  4792. break;
  4793. case 172:
  4794. #line 1272 "pic.y"
  4795. {
  4796.           lex_warning("`last %1' in `with' argument ignored",
  4797.                   object_type_name(yyvsp[-1].obtype));
  4798.           yyval.pth = yyvsp[0].pth;
  4799.         }
  4800. break;
  4801. case 173:
  4802. #line 1278 "pic.y"
  4803. {
  4804.           lex_warning("`%1%2 %3' in `with' argument ignored",
  4805.                   yyvsp[-2].n, ordinal_postfix(yyvsp[-2].n), object_type_name(yyvsp[-1].obtype));
  4806.           yyval.pth = yyvsp[0].pth;
  4807.         }
  4808. break;
  4809. case 174:
  4810. #line 1284 "pic.y"
  4811. {
  4812.           lex_warning("initial `%1' in `with' argument ignored", yyvsp[-1].str);
  4813.           a_delete yyvsp[-1].str;
  4814.           yyval.pth = yyvsp[0].pth;
  4815.         }
  4816. break;
  4817. case 175:
  4818. #line 1293 "pic.y"
  4819. { yyval.crn = &object::north; }
  4820. break;
  4821. case 176:
  4822. #line 1295 "pic.y"
  4823. { yyval.crn = &object::east; }
  4824. break;
  4825. case 177:
  4826. #line 1297 "pic.y"
  4827. { yyval.crn = &object::west; }
  4828. break;
  4829. case 178:
  4830. #line 1299 "pic.y"
  4831. { yyval.crn = &object::south; }
  4832. break;
  4833. case 179:
  4834. #line 1301 "pic.y"
  4835. { yyval.crn = &object::north_east; }
  4836. break;
  4837. case 180:
  4838. #line 1303 "pic.y"
  4839. { yyval.crn = &object:: south_east; }
  4840. break;
  4841. case 181:
  4842. #line 1305 "pic.y"
  4843. { yyval.crn = &object::north_west; }
  4844. break;
  4845. case 182:
  4846. #line 1307 "pic.y"
  4847. { yyval.crn = &object::south_west; }
  4848. break;
  4849. case 183:
  4850. #line 1309 "pic.y"
  4851. { yyval.crn = &object::center; }
  4852. break;
  4853. case 184:
  4854. #line 1311 "pic.y"
  4855. { yyval.crn = &object::start; }
  4856. break;
  4857. case 185:
  4858. #line 1313 "pic.y"
  4859. { yyval.crn = &object::end; }
  4860. break;
  4861. case 186:
  4862. #line 1315 "pic.y"
  4863. { yyval.crn = &object::north; }
  4864. break;
  4865. case 187:
  4866. #line 1317 "pic.y"
  4867. { yyval.crn = &object::south; }
  4868. break;
  4869. case 188:
  4870. #line 1319 "pic.y"
  4871. { yyval.crn = &object::west; }
  4872. break;
  4873. case 189:
  4874. #line 1321 "pic.y"
  4875. { yyval.crn = &object::east; }
  4876. break;
  4877. case 190:
  4878. #line 1323 "pic.y"
  4879. { yyval.crn = &object::north_west; }
  4880. break;
  4881. case 191:
  4882. #line 1325 "pic.y"
  4883. { yyval.crn = &object::south_west; }
  4884. break;
  4885. case 192:
  4886. #line 1327 "pic.y"
  4887. { yyval.crn = &object::north_east; }
  4888. break;
  4889. case 193:
  4890. #line 1329 "pic.y"
  4891. { yyval.crn = &object::south_east; }
  4892. break;
  4893. case 194:
  4894. #line 1331 "pic.y"
  4895. { yyval.crn = &object::west; }
  4896. break;
  4897. case 195:
  4898. #line 1333 "pic.y"
  4899. { yyval.crn = &object::east; }
  4900. break;
  4901. case 196:
  4902. #line 1335 "pic.y"
  4903. { yyval.crn = &object::north_west; }
  4904. break;
  4905. case 197:
  4906. #line 1337 "pic.y"
  4907. { yyval.crn = &object::south_west; }
  4908. break;
  4909. case 198:
  4910. #line 1339 "pic.y"
  4911. { yyval.crn = &object::north_east; }
  4912. break;
  4913. case 199:
  4914. #line 1341 "pic.y"
  4915. { yyval.crn = &object::south_east; }
  4916. break;
  4917. case 200:
  4918. #line 1343 "pic.y"
  4919. { yyval.crn = &object::center; }
  4920. break;
  4921. case 201:
  4922. #line 1345 "pic.y"
  4923. { yyval.crn = &object::start; }
  4924. break;
  4925. case 202:
  4926. #line 1347 "pic.y"
  4927. { yyval.crn = &object::end; }
  4928. break;
  4929. case 203:
  4930. #line 1352 "pic.y"
  4931. {
  4932.           if (!lookup_variable(yyvsp[0].str, & yyval.x)) {
  4933.             lex_error("there is no variable `%1'", yyvsp[0].str);
  4934.             YYABORT;
  4935.           }
  4936.           a_delete yyvsp[0].str;
  4937.         }
  4938. break;
  4939. case 204:
  4940. #line 1360 "pic.y"
  4941. { yyval.x = yyvsp[0].x; }
  4942. break;
  4943. case 205:
  4944. #line 1362 "pic.y"
  4945. {
  4946.           if (yyvsp[-1].pl.obj != 0)
  4947.             yyval.x = yyvsp[-1].pl.obj->origin().x;
  4948.           else
  4949.             yyval.x = yyvsp[-1].pl.x;
  4950.         }
  4951. break;
  4952. case 206:
  4953. #line 1369 "pic.y"
  4954. {
  4955.           if (yyvsp[-1].pl.obj != 0)
  4956.             yyval.x = yyvsp[-1].pl.obj->origin().y;
  4957.           else
  4958.             yyval.x = yyvsp[-1].pl.y;
  4959.         }
  4960. break;
  4961. case 207:
  4962. #line 1376 "pic.y"
  4963. {
  4964.           if (yyvsp[-1].pl.obj != 0)
  4965.             yyval.x = yyvsp[-1].pl.obj->height();
  4966.           else
  4967.             yyval.x = 0.0;
  4968.         }
  4969. break;
  4970. case 208:
  4971. #line 1383 "pic.y"
  4972. {
  4973.           if (yyvsp[-1].pl.obj != 0)
  4974.             yyval.x = yyvsp[-1].pl.obj->width();
  4975.           else
  4976.             yyval.x = 0.0;
  4977.         }
  4978. break;
  4979. case 209:
  4980. #line 1390 "pic.y"
  4981. {
  4982.           if (yyvsp[-1].pl.obj != 0)
  4983.             yyval.x = yyvsp[-1].pl.obj->radius();
  4984.           else
  4985.             yyval.x = 0.0;
  4986.         }
  4987. break;
  4988. case 210:
  4989. #line 1397 "pic.y"
  4990. { yyval.x = yyvsp[-2].x + yyvsp[0].x; }
  4991. break;
  4992. case 211:
  4993. #line 1399 "pic.y"
  4994. { yyval.x = yyvsp[-2].x - yyvsp[0].x; }
  4995. break;
  4996. case 212:
  4997. #line 1401 "pic.y"
  4998. { yyval.x = yyvsp[-2].x * yyvsp[0].x; }
  4999. break;
  5000. case 213:
  5001. #line 1403 "pic.y"
  5002. {
  5003.           if (yyvsp[0].x == 0.0) {
  5004.             lex_error("division by zero");
  5005.             YYABORT;
  5006.           }
  5007.           yyval.x = yyvsp[-2].x/yyvsp[0].x;
  5008.         }
  5009. break;
  5010. case 214:
  5011. #line 1411 "pic.y"
  5012. {
  5013.           if (yyvsp[0].x == 0.0) {
  5014.             lex_error("modulus by zero");
  5015.             YYABORT;
  5016.           }
  5017.           yyval.x = fmod(yyvsp[-2].x, yyvsp[0].x);
  5018.         }
  5019. break;
  5020. case 215:
  5021. #line 1419 "pic.y"
  5022. {
  5023.           errno = 0;
  5024.           yyval.x = pow(yyvsp[-2].x, yyvsp[0].x);
  5025.           if (errno == EDOM) {
  5026.             lex_error("arguments to `^' operator out of domain");
  5027.             YYABORT;
  5028.           }
  5029.           if (errno == ERANGE) {
  5030.             lex_error("result of `^' operator out of range");
  5031.             YYABORT;
  5032.           }
  5033.         }
  5034. break;
  5035. case 216:
  5036. #line 1432 "pic.y"
  5037. { yyval.x = -yyvsp[0].x; }
  5038. break;
  5039. case 217:
  5040. #line 1434 "pic.y"
  5041. { yyval.x = yyvsp[-1].x; }
  5042. break;
  5043. case 218:
  5044. #line 1436 "pic.y"
  5045. {
  5046.           errno = 0;
  5047.           yyval.x = sin(yyvsp[-1].x);
  5048.           if (errno == ERANGE) {
  5049.             lex_error("sin result out of range");
  5050.             YYABORT;
  5051.           }
  5052.         }
  5053. break;
  5054. case 219:
  5055. #line 1445 "pic.y"
  5056. {
  5057.           errno = 0;
  5058.           yyval.x = cos(yyvsp[-1].x);
  5059.           if (errno == ERANGE) {
  5060.             lex_error("cos result out of range");
  5061.             YYABORT;
  5062.           }
  5063.         }
  5064. break;
  5065. case 220:
  5066. #line 1454 "pic.y"
  5067. {
  5068.           errno = 0;
  5069.           yyval.x = atan2(yyvsp[-3].x, yyvsp[-1].x);
  5070.           if (errno == EDOM) {
  5071.             lex_error("atan2 argument out of domain");
  5072.             YYABORT;
  5073.           }
  5074.           if (errno == ERANGE) {
  5075.             lex_error("atan2 result out of range");
  5076.             YYABORT;
  5077.           }
  5078.         }
  5079. break;
  5080. case 221:
  5081. #line 1467 "pic.y"
  5082. {
  5083.           errno = 0;
  5084.           yyval.x = log10(yyvsp[-1].x);
  5085.           if (errno == ERANGE) {
  5086.             lex_error("log result out of range");
  5087.             YYABORT;
  5088.           }
  5089.         }
  5090. break;
  5091. case 222:
  5092. #line 1476 "pic.y"
  5093. {
  5094.           errno = 0;
  5095.           yyval.x = pow(10.0, yyvsp[-1].x);
  5096.           if (errno == ERANGE) {
  5097.             lex_error("exp result out of range");
  5098.             YYABORT;
  5099.           }
  5100.         }
  5101. break;
  5102. case 223:
  5103. #line 1485 "pic.y"
  5104. {
  5105.           errno = 0;
  5106.           yyval.x = sqrt(yyvsp[-1].x);
  5107.           if (errno == EDOM) {
  5108.             lex_error("sqrt argument out of domain");
  5109.             YYABORT;
  5110.           }
  5111.         }
  5112. break;
  5113. case 224:
  5114. #line 1494 "pic.y"
  5115. { yyval.x = yyvsp[-3].x > yyvsp[-1].x ? yyvsp[-3].x : yyvsp[-1].x; }
  5116. break;
  5117. case 225:
  5118. #line 1496 "pic.y"
  5119. { yyval.x = yyvsp[-3].x < yyvsp[-1].x ? yyvsp[-3].x : yyvsp[-1].x; }
  5120. break;
  5121. case 226:
  5122. #line 1498 "pic.y"
  5123. { yyval.x = floor(yyvsp[-1].x); }
  5124. break;
  5125. case 227:
  5126. #line 1500 "pic.y"
  5127. { yyval.x = 1.0 + floor(((rand()&0x7fff)/double(0x7fff))*yyvsp[-1].x); }
  5128. break;
  5129. case 228:
  5130. #line 1502 "pic.y"
  5131. {
  5132.           /* return a random number in the range [0,1) */
  5133.           /* portable, but not very random */
  5134.           yyval.x = (rand() & 0x7fff) / double(0x8000);
  5135.         }
  5136. break;
  5137. case 229:
  5138. #line 1508 "pic.y"
  5139. { yyval.x = (yyvsp[-2].x < yyvsp[0].x); }
  5140. break;
  5141. case 230:
  5142. #line 1510 "pic.y"
  5143. { yyval.x = (yyvsp[-2].x <= yyvsp[0].x); }
  5144. break;
  5145. case 231:
  5146. #line 1512 "pic.y"
  5147. { yyval.x = (yyvsp[-2].x > yyvsp[0].x); }
  5148. break;
  5149. case 232:
  5150. #line 1514 "pic.y"
  5151. { yyval.x = (yyvsp[-2].x >= yyvsp[0].x); }
  5152. break;
  5153. case 233:
  5154. #line 1516 "pic.y"
  5155. { yyval.x = (yyvsp[-2].x == yyvsp[0].x); }
  5156. break;
  5157. case 234:
  5158. #line 1518 "pic.y"
  5159. { yyval.x = (yyvsp[-2].x != yyvsp[0].x); }
  5160. break;
  5161. case 235:
  5162. #line 1520 "pic.y"
  5163. { yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
  5164. break;
  5165. case 236:
  5166. #line 1522 "pic.y"
  5167. { yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
  5168. break;
  5169. case 237:
  5170. #line 1524 "pic.y"
  5171. { yyval.x = (yyvsp[0].x == 0.0); }
  5172. break;
  5173. #line 5174 "y.tab.c"
  5174.     }
  5175.     yyssp -= yym;
  5176.     yystate = *yyssp;
  5177.     yyvsp -= yym;
  5178.     yym = yylhs[yyn];
  5179.     if (yystate == 0 && yym == 0)
  5180.     {
  5181. #if YYDEBUG
  5182.         if (yydebug)
  5183.             printf("yydebug: after reduction, shifting from state 0 to\
  5184.  state %d\n", YYFINAL);
  5185. #endif
  5186.         yystate = YYFINAL;
  5187.         *++yyssp = YYFINAL;
  5188.         *++yyvsp = yyval;
  5189.         if (yychar < 0)
  5190.         {
  5191.             if ((yychar = yylex()) < 0) yychar = 0;
  5192. #if YYDEBUG
  5193.             if (yydebug)
  5194.             {
  5195.                 yys = 0;
  5196.                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  5197.                 if (!yys) yys = "illegal-symbol";
  5198.                 printf("yydebug: state %d, reading %d (%s)\n",
  5199.                         YYFINAL, yychar, yys);
  5200.             }
  5201. #endif
  5202.         }
  5203.         if (yychar == 0) goto yyaccept;
  5204.         goto yyloop;
  5205.     }
  5206.     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
  5207.             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
  5208.         yystate = yytable[yyn];
  5209.     else
  5210.         yystate = yydgoto[yym];
  5211. #if YYDEBUG
  5212.     if (yydebug)
  5213.         printf("yydebug: after reduction, shifting from state %d \
  5214. to state %d\n", *yyssp, yystate);
  5215. #endif
  5216.     if (yyssp >= yysse)
  5217.     {
  5218.         int depth = yyssp - yyss;
  5219.         if (yygrow () != 0)
  5220.           goto yyoverflow;
  5221.         yysse = yyss + yystacksize - 1;
  5222.         yyssp = yyss + depth;
  5223.         yyvsp = yyvs + depth;
  5224.     }
  5225.     *++yyssp = yystate;
  5226.     *++yyvsp = yyval;
  5227.     goto yyloop;
  5228. yyoverflow:
  5229.     yyerror("yacc stack overflow");
  5230. yyabort:
  5231.     return (1);
  5232. yyaccept:
  5233.     return (0);
  5234. }
  5235.  
  5236. static int
  5237. yygrow ()
  5238. {
  5239.     int old_stacksize = yystacksize;
  5240.     short *new_yyss;
  5241.     YYSTYPE *new_yyvs;
  5242.  
  5243.     if (yystacksize >= YYMAXDEPTH)
  5244.         return (1);
  5245.     yystacksize *= 2;
  5246.     if (yystacksize > YYMAXDEPTH)
  5247.         yystacksize = YYMAXDEPTH;
  5248. #if YYDEBUG
  5249.     if (yydebug)
  5250.         printf("yydebug: growing stack size from %d to %d\n",
  5251.                old_stacksize, yystacksize);
  5252. #endif
  5253.     new_yyss = (short *) yyrealloc (yyss, yystacksize * sizeof (short));
  5254.     if (new_yyss == 0)
  5255.         return (1);
  5256.     new_yyvs = (YYSTYPE *) yyrealloc (yyvs, yystacksize * sizeof (YYSTYPE));
  5257.     if (new_yyvs == 0)
  5258.     {
  5259.         yyfree (new_yyss);
  5260.         return (1);
  5261.     }
  5262.     yyss = new_yyss;
  5263.     yyvs = new_yyvs;
  5264.     return (0);
  5265. }
  5266.  
  5267. static YYPTR
  5268. YYDEFUN (yymalloc, (bytes), unsigned bytes)
  5269. {
  5270.     YYPTR ptr = (YYPTR) malloc (bytes);
  5271.     if (ptr != 0) return (ptr);
  5272.     yyerror ("yyparse: memory exhausted");
  5273.     return (0);
  5274. }
  5275.  
  5276. static YYPTR
  5277. YYDEFUN (yyrealloc, (old, bytes), YYPTR old YYAND unsigned bytes)
  5278. {
  5279.     YYPTR ptr = (YYPTR) realloc (old, bytes);
  5280.     if (ptr != 0) return (ptr);
  5281.     yyerror ("yyparse: memory exhausted");
  5282.     return (0);
  5283. }
  5284.