diff options
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java')
-rw-r--r-- | lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java | 2964 |
1 files changed, 2964 insertions, 0 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java new file mode 100644 index 00000000000..b158265d6eb --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java @@ -0,0 +1,2964 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.gpp; + +public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym { + + public interface IsKeyword { + public final static byte isKeyword[] = {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,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,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,0, + 0,0,0,0,0 + }; + }; + public final static byte isKeyword[] = IsKeyword.isKeyword; + public final boolean isKeyword(int index) { return isKeyword[index] != 0; } + + public interface BaseCheck { + public final static short baseCheck[] = {0, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3,1,1,1,1,1, + 1,1,1,2,2,1,1,0,1,0, + 4,2,3,2,3,2,2,1,0,1, + 1,4,4,4,8,8,3,3,4,4, + 3,3,2,2,7,7,7,7,4,4, + 5,6,3,2,2,1,1,1,2,2, + 2,2,2,2,2,2,2,4,7,9, + 3,0,1,2,2,1,2,3,4,1, + 0,3,1,0,3,5,1,4,1,3, + 3,1,3,3,3,1,3,3,1,3, + 3,1,3,3,3,3,1,3,3,1, + 3,1,3,1,3,1,3,1,3,1, + 5,1,2,1,1,3,3,3,3,3, + 3,3,3,3,3,3,1,2,1,3, + 1,0,1,0,1,1,0,1,1,1, + 1,1,1,1,1,1,3,4,3,2, + 1,4,2,1,2,5,7,5,1,4, + 1,0,5,7,8,1,1,2,2,3, + 2,3,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,1, + 0,4,4,2,2,2,2,2,1,0, + 1,1,1,1,1,1,2,1,2,2, + 2,1,1,2,2,1,2,2,1,2, + 2,1,2,2,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3,4,4,5,2, + 5,6,5,0,6,7,0,1,3,1, + 0,1,3,1,1,1,6,5,7,6, + 1,0,6,5,6,4,1,3,1,0, + 1,1,2,1,1,3,1,3,1,1, + 1,1,3,9,2,2,3,2,4,2, + 6,0,1,2,2,1,0,1,1,1, + 3,1,2,1,1,2,3,1,1,1, + 3,2,1,2,2,9,8,2,1,3, + 1,3,1,0,1,0,2,1,1,3, + 1,3,2,1,5,8,1,2,3,1, + 7,6,3,0,0,1,3,1,1,5, + 6,6,7,7,0,0,1,0,1,1, + 1,2,4,2,2,1,5,1,1,1, + 1,1,1,1,2,1,0,1,3,1, + 1,2,3,2,1,2,2,1,0,1, + 3,3,5,5,4,1,1,1,1,0, + 1,5,2,2,1,2,2,1,0,1, + 3,4,3,1,1,5,2,1,1,3, + 3,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2,2,7, + 1,0,1,3,1,1,2,4,2,4, + 7,9,5,1,3,1,0,1,1,2, + 4,4,1,2,5,5,3,3,1,4, + 3,1,0,1,3,1,1,1,2,6, + 3,1,3,1,4,0,1,1,1,3, + 1,0,4,1,0,1,2,1,3,4, + 1,2,2,3,2,2,3,1,1,1, + 1,1,-260,0,0,0,-19,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-2,0,0,0,0, + 0,0,-4,0,0,0,0,0,-67,0, + 0,0,0,-10,0,0,0,0,-120,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-27,0,0,0,0,0,0, + 0,0,0,0,-29,0,0,0,0,0, + -3,-55,0,0,0,0,-60,0,0,0, + -272,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-48,0,0,0,0, + 0,-68,-483,0,0,0,0,0,-80,0, + -266,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-112,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-118,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-113,0,0,0,0,-164,0, + 0,0,-267,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-130,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-54,0,-133,0,0,-7,0,0, + 0,0,0,-217,0,0,0,-36,0,0, + 0,0,0,0,-9,0,0,0,0,0, + -203,-252,-14,0,0,0,0,-571,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-450,0,0,-131,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,-43,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-338,-352,0,0, + 0,0,0,-16,0,-161,0,0,0,-163, + 0,0,0,0,-65,0,0,0,0,0, + -302,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-57,-341,0,0,0, + -388,0,0,0,0,0,0,0,0,0, + -104,0,0,0,0,0,-535,0,-12,0, + 0,0,0,0,0,0,0,-151,0,0, + -364,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-49,-70,0,-17,-408,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-79,0,0,0,0,0,0,-26,0, + 0,0,0,0,-13,0,0,0,0,0, + 0,0,0,0,0,-502,0,0,0,-33, + 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,-51,0,0,0,0,-44,0,0,0, + 0,0,-125,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-58,0,0,0,0, + 0,0,-518,0,0,0,0,0,-34,0, + 0,0,0,0,0,-50,0,0,0,-234, + 0,0,0,-98,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-37,0,-96,0,0,0,0,-39, + 0,0,0,0,0,-63,0,0,0,0, + 0,0,-320,0,0,0,0,0,-366,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-211,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-53,0,0,0, + 0,0,0,0,0,0,0,-332,0,0, + 0,-114,0,0,0,0,0,-315,0,0, + 0,-109,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-213,0,0,0,0,0,0,0, + 0,0,0,-117,0,0,0,-199,0,0, + 0,0,0,-411,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, + -87,0,0,-64,0,0,0,0,0,0, + 0,0,0,-32,0,0,0,0,0,0, + 0,0,0,0,0,0,-501,0,0,-242, + 0,0,0,0,-412,0,0,0,-405,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-40,0,-41, + -42,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-437,0,0,0,0,0, + -418,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-56,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -484,0,0,0,0,0,-196,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-45, + 0,-231,0,0,0,0,-102,0,0,0, + 0,0,-77,0,0,0,0,-116,0,0, + 0,0,-289,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-358,0,0, + 0,0,0,0,0,0,0,0,-61,0, + 0,0,-489,0,0,0,0,0,-290,0, + 0,0,-552,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-62,0,-438,0,0,0,0,-134,0, + 0,0,0,0,-124,0,0,0,0,-500, + 0,0,0,0,-291,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-95, + 0,-71,0,0,0,0,0,0,0,0, + -75,0,0,0,-490,0,0,0,0,0, + -292,0,0,0,-553,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-429,0,0,0, + 0,0,0,0,0,0,-82,0,0,0, + -516,0,0,0,0,0,-293,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,-444,-142,0,0,0,0,0,0, + 0,0,-362,0,0,0,0,-400,0,-76, + 0,0,-294,0,0,0,-83,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,-564,0,0,0,0,0,-84,0, + 0,0,0,-81,-85,-262,0,0,-295,0, + 0,0,-101,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-78,0,0,-88,0,0,0,0,0, + 0,0,0,0,-89,0,0,0,0,-100, + -107,-139,0,0,-296,0,0,0,-145,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-92,0,0, + -94,0,0,0,0,0,0,0,0,0, + -110,0,0,0,0,-144,-150,0,0,0, + -297,0,0,0,-147,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-129,0,0,0, + 0,0,0,0,0,0,-152,0,0,0, + 0,-146,-210,0,0,0,-298,0,0,0, + -249,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-165, + 0,0,0,-143,0,0,0,0,0,0, + 0,0,-172,0,0,0,-149,0,0,-221, + 0,0,-299,0,0,0,-167,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-168,-158,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-522,-207,-169,0,0,0,-407,0, + 0,0,-229,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-160,0,-232,-162,0,0,0,0,0, + 0,0,0,0,-470,0,0,0,-551,0, + -170,-230,0,0,-449,0,0,0,-171,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-212,0,-173, + -503,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-536,-227,0,0,0,0, + -555,0,0,0,-244,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-238,-326,0,0, + 0,0,0,0,0,0,-257,0,0,0, + 0,-153,-185,-233,0,0,-330,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,-186,0,0,0,-340,0,0,0, + -187,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,-97,0,0,0, + -188,-235,0,0,0,0,0,0,-391,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,-239,-189,0,0,0,0, + 0,0,0,0,-190,0,0,0,-421,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-304,0,-191,0,0,0,0,-486,0, + 0,0,0,0,-192,0,0,0,-135,0, + 0,0,-193,-236,0,0,0,0,0,-194, + -422,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-195,0,-197,-311,-250,0,0, + 0,0,0,0,0,0,-198,0,0,0, + -549,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-306,0,0,0,0, + 0,0,0,0,0,0,-119,0,0,0, + -30,0,0,0,0,0,0,0,0,0, + 0,0,0,-228,0,0,0,-59,0,0, + 0,0,0,0,-122,0,0,0,-328,0, + 0,0,0,-310,0,0,0,0,0,-404, + 0,0,-240,-248,-99,0,-200,0,0,0, + 0,0,-86,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-547,0,0,-301, + 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,-263,-66,0,0,-159, + 0,0,0,0,0,0,0,-204,-237,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-206, + 0,0,0,0,0,0,-208,0,-243,0, + 0,0,0,0,-115,-339,-312,-216,0,0, + 0,-560,-314,0,0,0,0,-218,0,0, + 0,0,0,-219,0,0,0,0,0,0, + 0,0,-222,-258,0,0,0,-288,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,-224,0,0,-225,0,0, + 0,0,0,0,0,0,0,0,-307,0, + 0,0,0,0,-226,0,0,0,-286,0, + 0,0,-245,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-539,0,0,0,0,0,0, + 0,0,0,-287,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-246,0,0,0, + -215,0,0,-259,0,0,0,-265,-309,0, + 0,-414,0,0,0,0,0,0,0,0, + 0,0,0,0,-327,0,0,0,-474,0, + 0,0,-343,0,-23,-241,0,0,0,-532, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-316,0,-505,0,0,0,0, + 0,0,0,-562,0,0,0,0,0,0, + 0,0,0,0,0,0,-572,0,0,-323, + 0,-321,-345,0,-443,0,0,-346,0,-5, + 0,0,0,-15,0,0,0,0,0,0, + 0,0,0,-317,0,-324,0,0,0,0, + 0,0,-325,-331,0,0,0,0,0,0, + 0,-201,0,0,0,-283,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-21,0, + -333,0,-127,0,0,0,0,0,0,-401, + -347,0,0,0,-123,0,0,0,0,0, + 0,0,-423,0,0,0,0,0,0,0, + 0,0,0,-268,0,0,0,0,-360,0, + 0,0,0,0,0,0,0,0,0,0, + -329,0,0,0,0,0,-166,-348,-336,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-368,-313,-469,0,0,-126,0,0, + 0,0,0,0,0,0,0,0,0,0, + -353,-349,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-223,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-350, + 0,-72,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -351,0,0,-355,-334,0,0,0,0,-28, + 0,0,0,0,0,0,0,-363,0,0, + -356,0,0,0,0,0,0,0,-464,0, + 0,0,0,0,0,-465,0,0,0,0, + 0,0,0,0,0,0,-428,0,0,0, + 0,0,-393,-357,0,-402,0,0,-540,0, + 0,0,0,0,0,0,-367,0,0,0, + 0,-284,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,-369,0,-285,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-337,0,-370,-371, + -18,0,0,-409,0,-318,0,0,0,0, + 0,0,0,0,0,0,0,0,-541,0, + 0,0,-202,-372,-303,0,0,0,0,-403, + -550,-277,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-373,0,-419,-472,0,0, + 0,-440,0,0,0,0,0,0,0,0, + -20,0,0,0,-335,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-566,-374, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-406,-466, + 0,-431,0,0,-448,0,0,0,-420,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-375,0,0, + -209,0,0,0,0,0,-425,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -361,0,0,0,0,0,0,0,0,0, + -445,0,0,0,-376,0,0,0,0,0, + 0,0,-377,0,0,-473,0,0,-378,0, + 0,0,0,0,-475,-497,-379,-509,0,0, + 0,0,-461,0,0,0,0,0,0,0, + -278,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-380,0,0,0,0,0,0, + -274,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,-279,0,0,0, + -476,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-517, + 0,-485,-381,0,0,0,-280,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-305, + 0,0,-308,0,0,0,0,-424,-382,-6, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-383,0,-384,-385,-493,-495,-462, + -499,-386,0,0,0,0,-527,-387,0,-390, + 0,0,0,-389,-392,0,-531,0,0,0, + 0,0,0,0,0,0,0,0,0,-542, + 0,-35,-510,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -394,-511,-512,-513,0,0,0,-563,0,0, + -395,0,0,0,0,0,0,0,0,0, + 0,-396,-397,0,-399,-426,-427,-433,0,-434, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-554,0,0,0,0,0,0, + 0,0,0,0,0,0,-281,0,0,0, + -525,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-435, + 0,-436,-451,-452,0,-454,-459,-463,-467,-481, + 0,-482,-488,-498,0,-558,-569,-504,-519,-523, + -524,0,0,0,0,0,0,-176,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-38, + 0,0,0,-46,0,0,0,0,0,-529, + 0,0,0,0,-282,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-398,0,0, + -537,0,0,0,-538,-468,0,0,-526,-22, + 0,0,-544,0,-137,0,-546,-556,0,-561, + 0,-447,0,0,0,0,0,-545,-559,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-453,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-24,-136,0,0,0, + 0,0,0,0,0,0,0,0,0,-565, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-455,-410,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-415,-568,0,0,0,0,0, + 0,0,0,-570,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-492, + -508,0,-543,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,-528,-514,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-432,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,-530,-515,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-548,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-534,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,0,0,0,-567,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -491,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,-573, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-105,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-1,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,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-47,0,0,0,0,-52, + 0,0,0,-121,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-106,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,0,0, + 0,-273,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-73,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -174,0,0,0,0,-93,0,0,0,0, + 0,0,0,0,0,0,-138,0,0,0, + 0,0,0,0,0,0,0,-140,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,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-156,0, + 0,0,0,0,0,0,0,-214,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-269,0,0, + 0,0,0,0,0,-275,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-74,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-276,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-25,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, + -177,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,-178, + 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,-179,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,-180,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-181, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-182,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-183,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-184,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-261,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-270, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-271,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-354,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-441,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-8,0,-157, + -300,0,-477,-478,0,0,0,0,-11,0, + 0,0,0,0,0,0,0,0,0,-90, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-128,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,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-91,0,0,0, + 0,0,-479,0,0,0,0,-322,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-108,0,0,0, + 0,0,-456,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,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,-31,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-494,0,0,0,0,0,0,0,0, + 0,0,0,0,-103,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-155,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, + -154,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-344,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-496, + 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,-413,0,0, + 0,0,0,-458,-253,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-254, + 0,-342,0,0,0,0,0,0,0,0, + -111,0,0,0,0,0,0,-251,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,0,0, + 0,0,0,0,0,-69,0,0,0,0, + 0,0,0,0,0,0,0,-132,0,0, + 0,0,0,-247,0,0,0,0,0,-319, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-487,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-141,0,0,0,0,0,0, + 0,0,0,-521,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-205,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-220,0,0,0,0,0,-359,0, + 0,0,-365,0,0,0,0,0,-557,0, + 0,-480,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-430,0,0,0,-471, + 0,0,0,0,-506,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-255,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,-507,0,0,0,-148,0,0, + 0,0,0,0,0,0,-175,0,0,0, + 0,0,0,0,0,-256,0,0,0,0, + 0,-520,0,0,-264,0,0,0,0,-439, + 0,0,0,0,0,-457,0,0,-460,0, + 0,0,0,0,0,0,0,0,0,-446, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-416,0, + 0,0,0,0,0,-417,0,0,0,0, + 0,0,0,0,0,0,-442,0,0,0, + 0,0,0,0,0,-574,0,0,0,0, + 0,0,-533,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0 + }; + }; + public final static short baseCheck[] = BaseCheck.baseCheck; + public final int baseCheck(int index) { return baseCheck[index]; } + public final static short rhs[] = baseCheck; + public final int rhs(int index) { return rhs[index]; }; + + public interface BaseAction { + public final static char baseAction[] = { + 182,4,143,87,87,30,30,72,72,42, + 42,46,46,182,1,1,15,15,15,15, + 15,15,15,15,16,16,16,14,11,11, + 6,6,6,6,6,6,2,70,70,5, + 5,12,12,48,48,144,144,145,66,66, + 47,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17, + 17,146,146,146,123,123,18,18,18,18, + 18,18,18,18,18,18,18,18,18,19, + 19,183,183,184,184,185,149,149,150,150, + 147,147,151,148,148,20,20,21,21,22, + 22,22,24,24,24,24,28,28,28,29, + 29,29,31,31,31,31,31,32,32,32, + 33,33,34,34,35,35,37,37,38,38, + 39,39,45,45,44,44,44,44,44,44, + 44,44,44,44,44,44,44,43,36,152, + 152,101,101,186,186,96,212,212,73,73, + 73,73,73,73,73,73,73,74,74,74, + 71,71,65,65,187,187,75,75,75,108, + 108,188,188,76,76,76,189,189,77,77, + 77,77,77,78,78,88,88,88,88,88, + 88,88,88,53,53,53,53,53,109,109, + 107,107,54,190,23,23,23,23,23,52, + 52,91,91,91,91,91,159,159,154,154, + 154,154,154,155,155,155,156,156,156,157, + 157,157,158,158,158,92,92,92,92,92, + 93,93,93,13,13,13,13,13,13,13, + 13,13,13,13,102,127,127,127,127,127, + 127,125,125,125,160,126,126,191,162,162, + 161,161,129,129,110,82,82,83,84,56, + 51,163,163,57,55,90,90,164,164,153, + 153,130,131,131,132,68,68,165,165,61, + 61,61,59,59,58,62,62,85,85,67, + 67,67,63,94,94,104,103,103,69,69, + 60,60,64,64,49,105,105,105,97,97, + 97,98,98,99,99,99,100,100,111,111, + 111,113,113,112,112,213,213,95,95,193, + 193,193,193,193,134,50,50,167,192,192, + 135,135,135,135,136,169,194,194,40,40, + 124,137,137,137,137,196,115,114,114,128, + 128,128,170,171,171,171,171,171,171,171, + 171,171,171,171,198,198,195,195,197,197, + 117,118,118,118,118,119,199,120,116,116, + 200,200,172,172,172,172,106,106,106,201, + 201,8,8,9,202,202,203,173,166,166, + 174,174,175,176,176,7,7,10,204,204, + 204,204,204,204,204,204,204,204,204,204, + 204,204,204,204,204,204,204,204,204,204, + 204,204,204,204,204,204,204,204,204,204, + 204,204,204,204,204,204,204,204,204,204, + 80,86,86,177,177,139,139,140,140,140, + 140,140,140,3,141,141,138,138,121,121, + 89,81,79,168,168,122,122,205,205,205, + 142,142,133,133,206,206,25,25,41,41, + 26,26,207,207,178,178,178,179,179,208, + 208,180,180,27,209,209,210,210,181,181, + 181,91,132,132,132,117,117,117,191,196, + 115,63,160,1158,36,3054,3021,2536,5409,28, + 31,32,1149,1070,27,29,3004,26,24,51, + 2153,107,77,78,109,2193,1139,2241,561,536, + 537,2201,2285,157,2276,2325,2314,2340,2333,1566, + 2364,2366,144,274,2426,1490,294,159,145,2959, + 36,1183,33,1102,5507,28,31,32,1149,1070, + 27,29,2090,26,24,51,2153,107,77,78, + 109,2193,233,2241,1259,36,280,2201,2285,2438, + 2276,2325,2314,2340,2333,875,2364,2557,165,1344, + 902,1483,2426,1272,236,231,232,163,36,1049, + 389,3372,36,1183,33,275,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,2193,325,3102,62,243,246,249, + 252,2859,1621,3080,36,278,328,274,1871,2373, + 577,2564,36,1183,33,2014,5413,28,31,32, + 1149,1070,58,29,1107,2719,1164,2804,3131,3201, + 3710,3756,4485,2466,36,1183,33,2800,5507,28, + 31,32,1149,1070,27,29,2090,26,24,51, + 2153,107,77,78,109,2193,344,2241,1259,36, + 454,2201,2285,5385,2276,2325,2314,2340,2333,276, + 2364,2366,144,1691,1432,36,278,518,145,163, + 36,283,2917,2598,36,1183,33,326,5413,28, + 31,32,1149,1070,57,29,499,519,2466,36, + 1183,33,2800,5507,28,31,32,1149,1070,27, + 29,2090,26,24,51,2153,107,77,78,109, + 2193,344,2241,2490,1055,2373,2201,2285,1279,2276, + 2325,2314,2340,2333,44,2364,2366,144,163,1785, + 1779,35,518,145,1308,1521,1584,2917,539,536, + 537,2462,335,1625,514,3450,2800,62,2377,36, + 1183,33,519,5550,28,31,32,1149,1070,27, + 29,1950,512,2898,2377,344,2466,36,1183,33, + 2800,5507,28,31,32,1149,1070,27,29,2090, + 26,24,51,2153,107,77,78,109,2193,344, + 2241,2917,335,2934,2201,2285,4266,2276,2325,2314, + 2340,2333,461,2364,2366,144,2918,3058,2883,514, + 518,145,5436,183,246,2917,1432,36,281,61, + 1705,2653,447,2528,2550,2154,2578,329,336,2377, + 519,2823,36,1183,33,2800,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,2193,344,2241,2005,163,2653,2201, + 2285,2745,2276,2325,2314,2340,2333,222,2364,2366, + 144,163,36,4840,4389,518,145,3224,1415,691, + 2917,539,536,537,3664,524,1370,514,2426,36, + 294,2368,36,1183,33,519,5550,28,31,32, + 1149,1070,60,29,2584,2785,1509,2377,780,2893, + 36,1183,33,3047,5507,28,31,32,1149,1070, + 27,29,2090,26,24,51,2153,107,77,78, + 109,2193,1804,2241,902,541,5298,2201,2285,784, + 2276,2325,2314,2340,2333,691,2364,2366,144,288, + 4145,1584,515,380,145,2088,2540,36,1183,33, + 873,5507,28,31,32,1149,1070,27,29,2090, + 26,24,51,2153,107,77,78,109,2193,430, + 2241,2115,2707,523,2201,2285,289,2276,2325,2314, + 2340,2333,335,2364,2366,144,5075,2536,1107,524, + 380,145,2088,2617,36,1183,33,3557,5507,28, + 31,32,1149,1070,27,29,2090,26,24,51, + 2153,107,77,78,109,2193,335,2241,2105,873, + 733,2201,2285,3339,2276,2325,2314,2340,2333,962, + 2364,2366,144,1861,386,1293,964,380,145,2088, + 2753,36,1183,33,2154,5507,28,31,32,1149, + 1070,27,29,2090,26,24,51,2153,107,77, + 78,109,2193,1051,2241,163,36,294,2201,2285, + 1140,2276,2325,2314,2340,2333,335,2364,2366,144, + 1508,387,1293,2899,551,145,304,2800,313,2368, + 36,1183,33,3036,5550,28,31,32,1149,1070, + 59,29,3137,36,1183,33,2966,5507,28,31, + 32,1149,1070,27,29,2090,26,24,51,2153, + 107,77,78,109,2193,444,2241,691,378,1293, + 2201,2285,4977,2276,2325,2314,2340,2333,3023,2364, + 2366,144,163,36,1779,277,159,145,3137,36, + 1183,33,2536,5507,28,31,32,1149,1070,27, + 29,2090,26,24,51,2153,107,77,78,109, + 2193,89,2241,2536,103,1724,2201,2285,362,2276, + 2325,2314,2340,2333,2536,2364,2366,144,163,36, + 1779,279,374,145,3137,36,1183,33,2045,5507, + 28,31,32,1149,1070,27,29,2090,26,24, + 51,2153,107,77,78,109,2193,556,2241,2367, + 549,1324,2201,2285,789,2276,2325,2314,2340,2333, + 851,2364,2366,144,2524,36,1183,33,374,145, + 42,31,32,1149,1070,1830,1497,341,2735,377, + 163,36,1779,282,2719,3137,36,1183,33,2536, + 5507,28,31,32,1149,1070,27,29,2090,26, + 24,51,2153,107,77,78,109,2193,1430,2241, + 1219,2919,373,2201,2285,4947,2276,2325,2314,2340, + 2333,2329,2364,2366,144,163,36,1779,3620,374, + 145,2753,36,1183,33,851,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,2193,3029,2241,691,1858,372,2201, + 2285,5231,2276,2325,2314,2340,2333,422,2364,2366, + 144,1975,36,1779,277,551,145,2683,36,1183, + 33,375,5507,28,31,32,1149,1070,27,29, + 2090,26,24,51,2153,107,77,78,109,2193, + 1903,2241,163,36,294,2201,2285,1053,2276,2325, + 2314,2340,2333,335,2364,2366,144,798,789,370, + 1304,143,145,3137,36,1183,33,448,5507,28, + 31,32,1149,1070,27,29,2090,26,24,51, + 2153,107,77,78,109,2193,382,2241,1293,36, + 280,2201,2285,5530,2276,2325,2314,2340,2333,1892, + 2364,2366,144,163,3630,1779,75,156,145,3137, + 36,1183,33,2536,5507,28,31,32,1149,1070, + 27,29,2090,26,24,51,2153,107,77,78, + 109,2193,1401,2241,163,36,3622,2201,2285,2373, + 2276,2325,2314,2340,2333,335,2364,2366,144,1222, + 2745,550,2138,155,145,3137,36,1183,33,851, + 5507,28,31,32,1149,1070,27,29,2090,26, + 24,51,2153,107,77,78,109,2193,526,2241, + 691,1923,1760,2201,2285,5354,2276,2325,2314,2340, + 2333,1391,2364,2366,144,1975,36,1779,3631,154, + 145,3137,36,1183,33,2536,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,2193,3153,2241,460,1371,557,2201, + 2285,448,2276,2325,2314,2340,2333,2283,2364,2366, + 144,163,36,1779,3717,153,145,3137,36,1183, + 33,851,5507,28,31,32,1149,1070,27,29, + 2090,26,24,51,2153,107,77,78,109,2193, + 525,2241,523,2251,2154,2201,2285,5333,2276,2325, + 2314,2340,2333,335,2364,2366,144,1222,163,3333, + 62,152,145,3137,36,1183,33,2537,5507,28, + 31,32,1149,1070,27,29,2090,26,24,51, + 2153,107,77,78,109,2193,303,2241,987,3301, + 323,2201,2285,3339,2276,2325,2314,2340,2333,2647, + 2364,2366,144,439,62,1479,2679,151,145,3137, + 36,1183,33,1508,5507,28,31,32,1149,1070, + 27,29,2090,26,24,51,2153,107,77,78, + 109,2193,335,2241,498,335,876,2201,2285,3757, + 2276,2325,2314,2340,2333,335,2364,2366,144,3715, + 62,517,1510,150,145,3137,36,1183,33,1538, + 5507,28,31,32,1149,1070,27,29,2090,26, + 24,51,2153,107,77,78,109,2193,335,2241, + 553,335,4277,2201,2285,4288,2276,2325,2314,2340, + 2333,335,2364,2366,144,930,1994,2024,3316,149, + 145,3137,36,1183,33,1510,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,2193,298,2241,2154,335,94,2201, + 2285,834,2276,2325,2314,2340,2333,2648,2364,2366, + 144,90,2748,62,103,148,145,3137,36,1183, + 33,2815,5507,28,31,32,1149,1070,27,29, + 2090,26,24,51,2153,107,77,78,109,2193, + 2653,2241,559,379,2154,2201,2285,390,2276,2325, + 2314,2340,2333,691,2364,2366,144,2244,5516,3291, + 62,147,145,3137,36,1183,33,1888,5507,28, + 31,32,1149,1070,27,29,2090,26,24,51, + 2153,107,77,78,109,2193,300,2241,2681,335, + 2573,2201,2285,2463,2276,2325,2314,2340,2333,405, + 2364,2366,144,2567,2373,2750,354,146,145,3137, + 36,1183,33,1510,5507,28,31,32,1149,1070, + 27,29,2090,26,24,51,2153,107,77,78, + 109,2193,335,2241,1144,335,2746,2201,2285,2559, + 2276,2325,2314,2340,2333,3058,2364,2366,144,2567, + 5436,2859,1510,160,145,3137,36,1183,33,2922, + 5507,28,31,32,1149,1070,27,29,2090,26, + 24,51,2153,107,77,78,109,2193,335,2241, + 1901,3059,2454,2201,2285,305,2276,2325,2314,2340, + 2333,327,2364,2366,144,341,786,36,397,141, + 145,3256,36,1183,33,1510,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,2193,297,2241,71,335,2154,2201, + 2285,2919,2276,2325,2314,2340,2333,151,2364,2366, + 144,1222,1130,2461,62,190,145,3372,36,1183, + 33,3047,5507,28,31,32,1149,1070,27,29, + 2090,26,24,51,2153,107,77,78,109,2193, + 299,2241,72,161,540,2201,2285,285,2276,2325, + 2314,2340,2333,1184,2364,2557,165,3372,36,1183, + 33,1779,5507,28,31,32,1149,1070,27,29, + 2090,26,24,51,2153,107,77,78,109,2193, + 2816,2241,543,1839,324,2201,2285,431,2276,2325, + 2314,2340,2333,532,2364,2557,165,2642,36,1183, + 33,424,62,1954,31,32,1149,1070,2951,3372, + 36,1183,33,424,5507,28,31,32,1149,1070, + 27,29,2090,26,24,51,2153,107,77,78, + 109,2193,560,2241,381,335,2615,2201,2285,3127, + 2276,2325,2314,2340,2333,1396,2364,2557,165,3372, + 36,1183,33,293,5507,28,31,32,1149,1070, + 27,29,2090,26,24,51,2153,107,77,78, + 109,2193,335,2241,1987,1055,971,2201,2285,3103, + 2276,2325,2314,2340,2333,1662,2364,2557,165,2642, + 36,1183,33,774,2295,41,31,32,1149,1070, + 1567,3372,36,1183,33,3616,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,2193,1515,2241,1568,335,2291,2201, + 2285,1019,2276,2325,2314,2340,2333,2012,2364,2557, + 165,3430,36,1183,33,423,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,2193,2449,2241,1259,36,454,2201, + 2285,5385,2276,2325,2314,2340,2333,961,2364,2557, + 165,1266,36,1183,33,5286,4449,28,31,32, + 1149,1070,340,29,786,36,397,426,163,36, + 1049,389,539,536,537,1050,538,536,537,2642, + 36,1183,33,355,1510,3187,31,32,1149,1070, + 163,3618,4247,2280,2715,1144,1143,1632,5145,3629, + 539,536,537,163,36,1049,389,3219,50,320, + 702,322,315,609,1641,1582,774,3103,333,2517, + 3372,36,1183,33,352,5507,28,31,32,1149, + 1070,27,29,2090,26,24,51,2153,107,77, + 78,109,2193,274,2241,2982,2295,694,2201,2285, + 1602,2276,2325,2314,2340,2333,383,3488,2178,1914, + 36,2861,33,5286,4449,28,31,32,1149,1070, + 340,29,538,536,537,539,536,537,2823,353, + 2334,307,311,1016,538,536,537,2155,2417,1705, + 2653,345,2368,1931,350,1522,1510,335,507,2743, + 3205,3134,418,335,935,341,2800,3787,2714,391, + 451,2528,2550,428,2780,1632,2329,320,702,322, + 315,609,1641,2582,62,344,333,1258,3372,36, + 1183,33,531,5507,28,31,32,1149,1070,27, + 29,2090,26,24,51,2153,107,77,78,109, + 2193,2917,2241,2982,4794,2279,2201,2285,1814,2276, + 2325,2314,2340,3477,1773,2832,534,3629,286,163, + 36,1049,389,542,1839,2957,3005,420,2824,3372, + 36,1183,33,2812,5507,28,31,32,1149,1070, + 27,29,2090,26,24,51,2153,107,77,78, + 109,2193,1876,2241,786,36,397,2201,2285,453, + 2276,2325,2314,3474,3372,36,1183,33,288,5507, + 28,31,32,1149,1070,27,29,2090,26,24, + 51,2153,107,77,78,109,2193,2380,2241,43, + 2467,2360,2201,2285,62,2276,2325,3476,1600,2432, + 2566,2707,2104,36,1183,33,2911,4449,28,31, + 32,1149,1070,340,29,2818,539,536,537,163, + 36,1049,389,62,25,1894,2280,538,536,537, + 2071,36,1183,33,5286,3660,28,31,32,1149, + 1070,340,29,2445,2954,545,163,36,1049,389, + 538,536,537,351,3059,538,536,537,3814,432, + 320,702,322,316,609,1641,966,3059,3720,334, + 335,4398,2952,335,3804,335,2800,3889,62,2319, + 3488,36,1049,389,3585,3010,435,353,320,702, + 322,315,609,238,3001,2966,3021,240,2517,347, + 2368,1931,350,3022,2471,561,536,537,70,561, + 536,537,163,36,1049,389,3372,36,1183,33, + 274,5507,28,31,32,1149,1070,27,29,2090, + 26,24,51,2153,107,77,78,109,2193,2454, + 2241,1323,392,1283,2201,2285,428,2276,3364,233, + 3228,62,50,233,1222,163,36,1049,389,47, + 307,311,1016,2778,538,536,537,506,538,536, + 537,236,231,232,151,241,231,232,1222,2373, + 823,69,275,3626,2711,1446,157,357,539,536, + 537,2855,201,3480,1632,50,532,2364,2850,2280, + 356,5304,1582,3271,243,246,249,252,2859,532, + 161,504,505,2373,44,3025,662,577,1407,36, + 1183,33,5286,3660,28,31,32,1149,1070,340, + 29,62,2851,403,2804,3131,3201,3710,3756,4485, + 539,536,537,538,536,537,1818,36,1183,33, + 5310,3660,28,31,32,1149,1070,340,29,4398, + 3038,54,1299,36,1183,33,4816,4449,28,31, + 32,1149,1070,340,29,3067,320,702,322,315, + 609,3053,353,2934,2955,2570,2517,538,536,537, + 74,36,1049,389,345,2368,1931,350,62,1247, + 52,3039,343,2445,320,702,322,315,609,335, + 538,536,537,1600,2814,394,2917,335,336,428, + 320,702,322,318,609,1641,2883,1786,88,334, + 50,353,5440,2154,1767,4150,2154,1582,1549,163, + 36,1049,389,345,2368,1931,350,62,308,311, + 1016,2764,3372,36,1183,33,667,5507,28,31, + 32,1149,1070,27,29,2090,26,24,51,2153, + 107,77,78,109,2193,180,2241,53,199,434, + 2201,2285,513,3423,3372,36,1183,33,1367,5507, + 28,31,32,1149,1070,27,29,2090,26,24, + 51,2153,107,77,78,109,2193,2280,2241,602, + 1974,1285,2201,2285,44,3459,2274,36,1183,33, + 5188,3660,28,31,32,1149,1070,340,29,163, + 36,1049,389,2536,2169,1843,561,536,537,367, + 2154,2373,3372,36,1183,33,352,5507,28,31, + 32,1149,1070,27,29,2090,26,24,51,2153, + 107,77,78,109,2193,2371,2241,2154,691,433, + 2201,3220,2984,5445,320,702,322,315,609,851, + 233,1393,198,2934,1740,2014,36,2861,33,5286, + 3660,28,31,32,1149,1070,340,29,377,2373, + 1993,353,245,231,232,2832,561,536,537,407, + 3556,536,537,345,2368,1931,350,331,336,62, + 335,2743,62,393,2091,2847,3277,428,98,1926, + 36,2861,33,5286,3660,28,31,32,1149,1070, + 340,29,2329,320,702,322,315,609,2067,452, + 233,2168,3325,1258,538,536,537,2184,36,2861, + 33,5286,3660,28,31,32,1149,1070,340,29, + 3277,3034,248,231,232,2800,538,536,537,45, + 2467,62,3556,536,537,2156,99,320,702,322, + 315,609,2445,2245,344,2329,691,1258,3277,2614, + 2312,5494,3458,420,2824,335,335,2622,335,3831, + 2750,91,3833,2154,2568,320,702,322,315,609, + 1723,3372,36,1183,33,1258,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,2193,1664,2241,3706,420,2824,2201, + 3268,3372,36,1183,33,202,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,109,3130,3458,420,2824,3372,36,1183, + 33,62,5507,28,31,32,1149,1070,27,29, + 2090,26,24,51,2153,107,77,78,109,2193, + 335,2241,62,2646,2487,2201,3305,3372,36,1183, + 33,3328,5507,28,31,32,1149,1070,27,29, + 2090,26,24,51,2153,107,77,78,109,2193, + 268,2241,3420,151,573,2201,3313,1222,2852,2716, + 1556,36,1183,33,2421,3660,28,31,32,1149, + 1070,340,29,229,2935,2795,3089,2102,62,62, + 2154,62,3099,538,536,537,157,240,1807,161, + 3105,3574,181,3053,1,3147,851,2154,573,2935, + 204,216,3460,203,213,214,215,217,3874,3918, + 335,3962,3017,62,2774,170,2800,229,317,1190, + 322,169,200,184,168,171,172,173,174,175, + 157,90,62,62,62,344,181,3053,335,5419, + 851,3166,2787,68,204,216,3460,203,213,214, + 215,217,3168,3219,3239,3220,2194,2623,3226,170, + 3280,1042,67,66,65,169,182,185,168,171, + 172,173,174,175,2285,36,1183,33,5310,3660, + 28,31,32,1149,1070,340,29,3372,36,1183, + 33,62,5507,28,31,32,1149,1070,27,29, + 2090,26,24,51,2153,107,77,78,109,2193, + 3281,2241,3282,3286,179,3319,3225,1308,3180,2457, + 3287,1563,3288,1780,3338,655,2154,2154,2382,3340, + 3205,2829,320,702,322,315,609,3494,3314,36, + 1183,33,527,5507,28,31,32,1149,1070,27, + 29,2090,26,24,51,2153,87,77,78,353, + 74,36,1049,389,252,36,1049,389,223,194, + 3382,345,2368,1931,350,3372,36,1183,33,528, + 5507,28,31,32,1149,1070,27,29,2090,26, + 24,51,2153,107,77,78,109,2193,357,2241, + 50,3091,573,3327,50,3343,3088,1582,1341,62, + 1501,1582,48,62,443,2952,457,3344,2936,2800, + 3397,229,1492,36,1049,389,2473,6128,62,62, + 1185,538,536,537,157,561,536,537,2966,1655, + 181,3053,446,56,851,6128,573,2883,204,216, + 3460,203,213,214,215,217,1617,3227,55,3627, + 6128,2800,274,170,6128,229,6128,6128,6128,169, + 62,3617,168,171,172,173,174,175,157,233, + 2966,561,536,537,181,3053,535,44,851,6128, + 573,6128,204,216,3460,203,213,214,215,217, + 102,251,231,232,2990,62,6128,170,2800,229, + 506,6128,6128,169,2918,179,168,171,172,173, + 174,175,157,6128,3623,233,6128,2966,181,3053, + 624,44,851,44,573,4050,204,216,3460,203, + 213,214,215,217,530,73,6128,254,231,232, + 6128,170,361,229,503,505,2934,169,6128,177, + 168,171,172,173,174,175,157,6128,1970,2593, + 2625,6128,181,3053,713,151,851,6128,573,1222, + 204,216,3460,203,213,214,215,217,6128,3227, + 3240,336,2628,2800,6128,170,6128,229,6128,506, + 2934,169,2934,178,168,171,172,173,174,175, + 157,161,2966,6128,6128,6128,181,3053,802,151, + 851,6128,573,1222,204,216,3460,203,213,214, + 215,217,6128,6128,3510,336,3538,336,6128,170, + 6128,229,151,503,505,169,1222,188,168,171, + 172,173,174,175,157,161,6128,6128,6128,6128, + 181,3053,891,6128,851,6128,573,6128,204,216, + 3460,203,213,214,215,217,3713,6128,161,6128, + 6128,3619,6128,170,361,229,6128,6128,6128,169, + 6128,3718,168,171,172,173,174,175,157,6128, + 3401,2593,2625,6128,181,3053,980,6128,851,6128, + 573,6128,204,216,3460,203,213,214,215,217, + 3728,3231,6128,6128,6128,2800,6128,170,6128,229, + 6128,6128,6128,169,6128,193,168,171,172,173, + 174,175,157,3770,344,6128,6128,6128,181,3053, + 1069,6128,851,6128,573,6128,204,216,3460,203, + 213,214,215,217,6128,6128,6128,6128,6128,6128, + 3487,170,872,229,6128,6128,6128,169,6128,187, + 168,171,172,173,174,175,157,1723,6128,6128, + 6128,2800,181,3053,6128,6128,851,538,536,537, + 204,216,3460,203,213,214,215,217,6128,6128, + 229,6128,6128,2520,6128,170,6128,6128,6128,6128, + 6128,169,6128,195,168,171,172,173,174,175, + 6128,6128,6128,6128,6128,6128,6128,206,216,3460, + 205,213,214,215,217,430,36,1049,389,6128, + 786,36,1831,4178,1299,36,1183,33,6128,4449, + 28,31,32,1149,1070,340,29,207,209,211, + 295,296,6128,828,6128,218,208,210,338,538, + 536,537,6128,6128,6128,50,6128,1999,6128,6128, + 50,6128,1582,48,13,2445,4849,1582,981,6128, + 6128,6128,6128,538,536,537,6128,6128,6128,6128, + 6128,2237,320,702,322,316,609,1641,6128,2520, + 6128,334,3372,36,1183,33,3709,5507,28,31, + 32,1149,1070,27,29,2090,26,24,51,2153, + 107,77,78,109,2193,6128,3129,1374,36,1183, + 33,5286,3660,28,31,32,1149,1070,340,29, + 6128,335,6128,6128,4072,573,1937,6128,6128,596, + 2800,6128,539,536,537,6128,6128,2027,6128,6128, + 6128,2800,6128,6128,344,6128,6128,6128,2117,229, + 6128,6128,2800,2042,6128,6128,6128,157,6128,6128, + 229,6128,6128,6128,2714,320,702,322,315,609, + 2917,229,6128,6128,6128,2863,206,216,3460,205, + 213,214,215,217,6128,2594,6128,206,216,3460, + 205,213,214,215,217,6128,6128,6128,206,216, + 3460,205,213,214,215,217,207,209,211,295, + 296,6128,828,6128,218,208,210,207,209,211, + 295,296,6128,828,6128,218,208,210,207,209, + 211,295,296,1832,828,4849,218,208,210,6128, + 6128,6128,6128,6128,2023,6128,4849,6128,6128,872, + 6128,6128,6128,6128,6128,2062,6128,4849,1407,36, + 1183,33,5286,3660,28,31,32,1149,1070,340, + 29,6128,6128,6128,538,536,537,6128,335,6128, + 6128,6128,1222,539,536,537,3372,36,1183,33, + 2520,5507,28,31,32,1149,1070,27,29,2090, + 26,24,51,2153,107,77,78,109,3154,74, + 36,1049,389,6128,157,6128,320,702,322,315, + 609,2933,3372,36,1183,33,2863,5507,28,31, + 32,1149,1070,27,29,2090,26,24,51,2153, + 107,77,78,109,3185,3537,36,1049,389,50, + 3010,6128,6128,6128,6128,6128,1582,4882,239,6128, + 6128,6128,6128,6128,2137,6128,6128,6128,6128,6128, + 561,536,537,6128,6128,2473,6128,6128,6128,6128, + 6128,3372,36,1183,33,274,5507,28,31,32, + 1149,1070,27,29,2090,26,24,51,2153,107, + 77,78,86,6128,6128,6128,6128,6128,6128,6128, + 3372,1785,1183,2718,233,5507,28,31,32,1149, + 1070,27,29,2090,26,24,51,2153,107,77, + 78,85,6128,6128,6128,6128,237,231,232,6128, + 6128,6128,6128,3372,36,1183,33,275,5507,28, + 31,32,1149,1070,27,29,2090,26,24,51, + 2153,107,77,78,84,6128,6128,6128,6128,244, + 247,250,253,2859,6128,6128,6128,6128,3372,36, + 1183,33,577,5507,28,31,32,1149,1070,27, + 29,2090,26,24,51,2153,107,77,78,83, + 3372,36,1183,33,6128,5507,28,31,32,1149, + 1070,27,29,2090,26,24,51,2153,107,77, + 78,82,3372,36,1183,33,6128,5507,28,31, + 32,1149,1070,27,29,2090,26,24,51,2153, + 107,77,78,81,3372,36,1183,33,6128,5507, + 28,31,32,1149,1070,27,29,2090,26,24, + 51,2153,107,77,78,80,3372,36,1183,33, + 6128,5507,28,31,32,1149,1070,27,29,2090, + 26,24,51,2153,107,77,78,79,3195,36, + 1183,33,6128,5507,28,31,32,1149,1070,27, + 29,2090,26,24,51,2153,107,77,78,105, + 3372,36,1183,33,6128,5507,28,31,32,1149, + 1070,27,29,2090,26,24,51,2153,107,77, + 78,111,3372,36,1183,33,6128,5507,28,31, + 32,1149,1070,27,29,2090,26,24,51,2153, + 107,77,78,110,3372,36,1183,33,6128,5507, + 28,31,32,1149,1070,27,29,2090,26,24, + 51,2153,107,77,78,108,3372,36,1183,33, + 6128,5507,28,31,32,1149,1070,27,29,2090, + 26,24,51,2153,107,77,78,106,1847,6128, + 2438,335,2800,335,335,1222,6128,1222,1222,1438, + 6128,6128,6128,2800,6128,6128,6128,6128,6128,6128, + 2207,229,6128,6128,2800,538,536,537,6128,6128, + 6128,6128,229,6128,6128,6128,6128,157,6128,157, + 157,2520,1542,229,3482,6128,3513,3532,206,216, + 3460,205,213,214,215,217,6128,6128,6128,206, + 216,3460,205,213,214,215,217,538,536,537, + 206,216,3460,205,213,214,215,217,207,209, + 211,295,296,2445,828,6128,520,208,210,207, + 209,211,295,296,6128,828,6128,219,208,210, + 207,209,211,295,296,2568,828,2297,521,208, + 210,2800,2329,335,6128,2275,6128,1222,2387,6128, + 6128,6128,2800,6128,6128,6128,6128,6128,6128,6128, + 229,6128,6128,6128,6128,6128,6128,430,36,1049, + 389,229,6128,335,6128,6128,6128,573,6128,157, + 6128,6128,6128,6128,6128,6128,3533,206,216,3460, + 205,213,214,215,217,6128,344,6128,206,216, + 3460,205,213,214,215,217,6128,50,6128,157, + 6128,6128,6128,6128,1582,48,189,207,209,211, + 295,296,5062,828,6128,306,208,210,207,209, + 211,295,296,926,828,6128,500,208,210,1612, + 36,1183,33,5286,3660,28,31,32,1149,1070, + 340,29,1627,36,1183,33,5286,3660,28,31, + 32,1149,1070,340,29,1222,6128,6128,6128,2800, + 5498,6128,6128,6128,6128,6128,6128,6128,6128,6128, + 6128,3478,6128,6128,6128,6128,1330,6128,229,6128, + 2800,5498,6128,6128,6128,6128,6128,320,702,322, + 315,609,6128,6128,6128,6128,6128,1740,6128,229, + 320,702,322,315,609,1967,408,5131,6128,6128, + 3670,1982,36,1183,33,2529,3660,28,31,32, + 1149,1070,340,29,6128,1831,1967,408,5131,2800, + 2875,6128,6128,6128,6128,409,410,411,295,296, + 3622,828,6128,6128,573,6128,6128,6128,2966,6128, + 538,536,537,404,6128,6128,409,410,411,295, + 296,1877,828,344,6128,6128,2445,6128,1831,317, + 1190,322,2800,2875,3228,335,157,6128,573,2800, + 6128,6128,1877,189,6128,6128,6128,6128,1641,5062, + 6128,2966,333,538,536,537,6128,3326,344,6128, + 335,6128,1654,6128,2800,6128,6128,2875,6128,2445, + 157,74,36,1049,389,6128,181,3053,335,5222, + 361,6128,573,344,2917,412,414,538,536,537, + 6128,1641,6128,6128,6128,333,3242,2593,2625,2952, + 6128,344,6128,2445,6128,196,412,415,191,2917, + 1885,50,6128,5096,157,6128,6128,6128,1582,48, + 6128,2871,2722,361,2980,1641,2090,2917,6128,334, + 6128,2875,6128,6128,6128,6128,655,779,2090,3242, + 2593,2625,2798,2875,2090,6128,6128,353,6128,2875, + 2090,538,536,537,6128,2875,6128,6128,6128,347, + 2368,1931,350,538,536,537,6128,2445,6128,538, + 536,537,6128,2090,6128,538,536,537,2875,2445, + 6128,6128,6128,6128,6128,2445,6128,6128,3497,1641, + 6128,2445,6128,333,1368,36,1049,389,538,536, + 537,1641,6128,6128,2342,333,6128,1641,6128,2875, + 6128,333,6128,1641,2445,6128,6128,333,6128,6128, + 4154,6128,6128,5160,197,74,36,1049,389,538, + 536,537,5403,6128,50,6128,1641,6128,5222,6128, + 5364,1582,48,2161,2722,2445,6128,6128,2875,2609, + 36,1049,389,430,36,1049,389,6128,6128,329, + 1492,6128,335,1222,6128,50,1222,1641,538,536, + 537,5364,1582,48,6128,6128,74,36,1049,389, + 74,36,1049,389,2445,74,36,1049,389,50, + 6128,2639,6128,50,6128,157,1582,3192,157,6128, + 1582,3245,163,335,6128,3534,1641,2800,6128,6128, + 334,6128,6128,6128,6128,667,50,6128,6128,3722, + 50,6128,95,1582,48,50,344,1582,48,6128, + 6128,6128,1582,48,74,36,1049,389,163,36, + 1049,389,2739,6128,6128,6128,2766,2440,36,1049, + 389,3059,2917,97,6128,6128,163,36,1049,389, + 6128,6128,335,6128,6128,335,1222,3001,6128,573, + 163,36,1049,389,50,6128,335,6128,50,335, + 573,1582,48,573,6128,1582,2334,50,344,6128, + 163,36,1049,389,1582,2516,50,6128,157,344, + 3149,157,344,1582,918,3161,6128,6128,2714,335, + 50,6128,157,2800,2917,157,335,1582,703,189, + 2800,6128,189,6128,6128,5062,6128,335,5062,3018, + 50,2800,344,6128,6128,6128,335,1582,2516,344, + 2800,6128,6128,335,6128,3805,6128,1222,6128,6128, + 344,6128,6128,6128,6128,6128,6128,6128,2917,344, + 6128,6128,6128,6128,6128,2917,6128,6128,6128,6128, + 6128,6128,6128,510,6128,6128,2917,6128,6128,157, + 508,6128,6128,6128,3479,2917,3729,3481,6128,6128, + 6128,3422,6128,6128,6128,6128,6128,6128,6128,6128, + 535,6128,0,502,4838,0,1,230,0,40, + 6143,0,40,6142,0,1,5049,0,1354,1, + 0,40,1,6143,0,40,1,6142,0,1, + 3512,0,1,838,0,230,220,0,924,224, + 0,1018,224,0,924,225,0,1018,225,0, + 924,226,0,1018,226,0,1018,395,0,924, + 395,0,284,395,0,924,227,0,1018,227, + 0,284,287,0,924,228,0,1018,228,0, + 6363,242,0,6362,242,0,924,242,0,1018, + 242,0,6467,242,0,6466,242,0,6390,242, + 0,6389,242,0,6388,242,0,6387,242,0, + 6386,242,0,6385,242,0,6384,242,0,6383, + 242,0,6401,242,0,6400,242,0,6399,242, + 0,6398,242,0,6397,242,0,6396,242,0, + 6395,242,0,6394,242,0,6393,242,0,6392, + 242,0,6391,242,0,40,242,6143,0,40, + 242,6142,0,6167,242,0,1136,388,0,6143, + 49,0,6142,49,0,1,1018,0,1,924, + 0,1,332,0,39,838,0,39,6143,0, + 39,6142,0,455,1503,0,441,1812,0,1136, + 30,0,6140,1,0,1018,569,0,924,569, + 0,572,569,0,572,568,0,1815,319,0, + 1,571,0,1,445,0,459,825,0,458, + 1589,0,36,34,0,48,38,0,230,221, + 0,502,1917,0,6167,1,230,0,40,1, + 230,0,230,417,0,1,1963,0,1,6401, + 0,1,6400,0,1,6399,0,1,6398,0, + 1,6397,0,1,6396,0,1,6395,0,1, + 6394,0,1,6393,0,1,6392,0,1,6391, + 0,6143,38,0,6142,38,0,44,6165,0, + 44,38,0,6140,384,0,6139,384,0,1, + 2106,0,1,2434,0,6138,406,0,6137,406, + 0,230,416,0,3397,127,0,6136,1,0, + 1018,446,0,924,446,0,332,446,0,6134, + 1,0,6133,1,0,1733,92,0,33,35, + 0,40,838,0,6165,46,0,38,46,0, + 1,230,3495,0,6137,230,0,3531,230,0, + 6167,1,0,40,1,0,238,2147,0,389, + 33,0,388,30,0,3397,129,0,3397,128, + 0,3614,230,0,10,12,0,1018,566,0, + 924,566,0,1018,565,0,924,565,0,538, + 539,0,1,93,0,8,10,12,0,1018, + 566,567,0,924,566,567,0,566,567,0, + 6143,2,38,0,6142,2,38,0,6143,37, + 0,6142,37,0,3701,384,0,1018,96,0, + 924,96,0,332,96,0,36,74,0,8, + 12,0,279,3875,0,186,4006,0 + }; + }; + public final static char baseAction[] = BaseAction.baseAction; + public final int baseAction(int index) { return baseAction[index]; } + public final static char lhs[] = baseAction; + public final int lhs(int index) { return lhs[index]; }; + + public interface TermCheck { + public final static byte termCheck[] = {0, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,0,62,63,64,65,66,24,68,69, + 27,10,72,0,1,2,76,77,78,79, + 80,81,82,83,84,85,86,87,88,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,71,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,59,60, + 0,62,63,64,65,66,0,68,69,3, + 10,72,0,1,2,76,77,78,79,80, + 81,82,83,84,85,86,87,88,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,71,44,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,59,60,0, + 62,63,64,65,66,0,68,69,3,10, + 72,0,1,2,76,77,78,79,80,81, + 82,83,84,85,86,87,88,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 71,44,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,60,0,62, + 63,64,65,66,0,68,69,0,10,72, + 0,4,5,6,77,78,79,80,81,82, + 83,84,85,86,87,88,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,71, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,60,0,62,63, + 64,65,66,0,68,69,0,10,72,0, + 1,2,9,77,78,79,80,81,82,83, + 84,85,86,87,88,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,71,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,0,62,63,64, + 65,66,0,68,69,9,0,72,95,96, + 4,9,77,78,79,80,81,82,83,84, + 85,86,87,88,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,61,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,60,0,62,63,64,65, + 66,0,68,69,0,0,72,95,96,4, + 9,77,78,79,80,81,82,83,84,85, + 86,87,88,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,61,44,45,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,59,60,0,62,63,64,65,66, + 0,68,69,0,4,72,95,96,5,6, + 77,78,79,80,81,82,83,84,85,86, + 87,88,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,60,0,62,63,64,65,66,0, + 68,69,3,0,72,0,1,2,0,77, + 78,79,80,81,82,83,84,85,86,87, + 88,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,61,44,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 59,60,74,62,63,64,65,66,0,68, + 69,0,0,72,0,102,5,6,77,78, + 79,80,81,82,83,84,85,86,87,88, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,61,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,77,62,63,64,65,66,0,68,69, + 0,0,72,0,1,5,6,77,78,79, + 80,81,82,83,84,85,86,87,88,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,61,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,59,60, + 0,62,63,64,65,66,0,68,69,0, + 0,72,0,1,5,6,77,78,79,80, + 81,82,83,84,85,86,87,88,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,61,44,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,59,60,0, + 62,63,64,65,66,0,68,69,0,0, + 72,12,3,0,1,77,78,79,80,81, + 82,83,84,85,86,87,88,0,1,2, + 3,4,5,6,7,8,9,24,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,0,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 0,44,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,60,0,0, + 63,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,0,1, + 2,123,4,42,43,0,1,2,3,4, + 5,6,7,8,9,92,11,94,0,58, + 59,60,0,62,0,64,65,5,6,5, + 6,73,0,1,2,74,4,76,0,1, + 2,3,4,5,6,7,8,0,24,25, + 89,27,28,29,30,31,32,33,34,35, + 36,43,0,0,1,2,105,106,107,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,43,0,1,2, + 0,42,43,0,1,2,3,4,5,6, + 7,8,9,61,11,78,0,58,59,60, + 0,62,0,64,65,0,74,5,6,9, + 0,11,0,74,4,76,0,1,2,3, + 4,5,6,7,8,0,24,25,89,27, + 28,29,30,31,32,33,34,35,36,0, + 0,0,1,2,105,106,107,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,43,105,106,107,0,42, + 43,3,0,5,6,90,91,9,10,11, + 61,0,1,2,12,58,59,60,7,62, + 0,64,65,66,26,5,6,0,0,0, + 3,3,0,76,0,37,38,39,40,10, + 0,0,1,2,24,25,89,27,28,29, + 30,31,32,33,34,35,36,0,0,61, + 3,0,1,2,62,67,5,6,70,71, + 9,73,74,75,76,0,1,2,3,4, + 123,41,7,8,43,0,0,0,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,75,43,76,108,109,110,111, + 112,113,114,115,116,117,118,119,120,0, + 122,0,3,0,5,6,5,6,9,10, + 11,0,1,2,3,4,0,103,7,8, + 0,5,6,3,0,26,0,1,2,3, + 4,0,67,7,8,4,37,38,39,40, + 24,25,75,27,28,29,30,31,32,33, + 34,35,36,0,1,2,3,4,5,6, + 61,0,9,0,11,41,67,101,0,70, + 71,104,73,74,75,76,109,110,111,112, + 113,114,115,116,117,118,119,67,0,90, + 91,92,93,94,95,96,97,98,99,100, + 101,102,103,104,0,1,2,108,109,110, + 111,112,113,114,115,116,117,118,119,120, + 67,122,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,0, + 99,100,99,100,42,43,0,1,2,3, + 4,5,6,7,8,9,10,11,0,0, + 58,59,60,4,62,0,64,65,66,4, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,0,1,2,0,4,5,6, + 25,89,9,0,11,37,38,0,1,2, + 3,4,5,6,7,8,9,61,11,70, + 0,1,2,67,4,5,6,71,0,9, + 10,11,0,1,2,123,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,70,67,43,73,0,42,43, + 3,0,75,0,1,2,0,4,5,6, + 0,71,0,3,58,59,60,61,62,103, + 64,65,66,0,1,2,3,4,5,6, + 7,8,9,93,11,0,1,2,3,4, + 5,6,7,8,43,89,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,0,0,1,2,75,42,43, + 0,0,1,2,3,4,0,74,7,8, + 0,10,0,0,58,59,60,11,62,74, + 64,65,66,10,0,1,2,26,4,5, + 6,0,76,0,1,2,3,4,5,6, + 7,8,9,0,11,89,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,70,71,92,0,94,42,43, + 0,1,2,3,4,5,6,7,8,0, + 10,70,90,91,58,59,60,74,62,0, + 64,65,66,4,5,6,26,74,9,0, + 11,0,76,0,1,2,3,4,5,6, + 7,8,9,0,11,89,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,0,0,0,90,91,42,43, + 0,1,2,10,4,5,6,0,0,9, + 67,11,5,6,58,59,60,0,62,26, + 64,65,66,0,1,2,3,4,5,6, + 7,8,76,0,1,2,3,4,5,6, + 7,8,9,102,11,89,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,0,0,90,91,70,42,43, + 0,1,2,10,4,5,6,74,104,9, + 92,11,94,109,58,59,60,74,62,26, + 64,65,66,0,1,2,3,4,0,0, + 7,8,0,10,0,1,2,3,4,0, + 0,7,8,3,0,89,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,0,90,91,3,43,42,43, + 67,0,1,2,71,4,5,6,70,67, + 9,67,11,74,58,59,60,67,62,0, + 64,65,66,0,5,6,3,0,1,2, + 0,4,0,10,7,8,0,1,2,0, + 4,0,10,7,8,89,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,42,0,0,1,2,42,43, + 67,0,0,70,71,10,73,0,0,0, + 1,2,5,6,58,59,60,0,62,70, + 64,65,66,0,1,2,0,4,5,6, + 0,0,92,3,94,0,1,2,3,4, + 0,10,7,8,9,89,11,12,13,14, + 15,16,17,18,19,20,21,22,23,0, + 1,2,120,4,5,6,43,72,61,39, + 40,70,37,38,39,40,41,68,69,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,0,1,2,70,67,63,73, + 7,8,43,68,69,0,0,76,73,0, + 1,2,3,4,74,10,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,0,1,2,0,4,108,0, + 7,8,0,7,5,6,37,38,39,40, + 41,0,122,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,0,1,2, + 0,4,63,67,7,8,43,72,0,1, + 2,72,0,0,0,76,0,1,2,3, + 4,0,0,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 43,0,1,2,0,0,0,0,7,8, + 37,38,0,37,38,39,40,41,37,38, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,93,61,68,69,0,63, + 0,3,0,1,2,3,4,73,72,7, + 8,9,70,11,12,13,14,15,16,17, + 18,19,20,21,22,23,61,61,61,0, + 0,97,98,0,0,0,0,3,73,37, + 38,39,40,41,10,73,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 0,61,97,98,0,63,0,0,1,0, + 68,69,0,1,2,3,4,10,0,7, + 8,9,4,11,12,13,14,15,16,17, + 18,19,20,21,22,23,61,0,0,0, + 0,67,5,6,0,71,73,3,73,37, + 38,39,40,41,10,0,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 61,0,97,98,0,63,0,0,71,61, + 68,69,0,1,2,3,4,10,0,7, + 8,9,4,11,12,13,14,15,16,17, + 18,19,20,21,22,23,0,1,2,0, + 0,0,73,7,0,71,5,6,0,37, + 38,39,40,41,10,121,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 26,67,0,1,2,63,75,70,71,43, + 68,69,0,1,2,3,4,0,0,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,0,0,0,61, + 0,0,73,73,70,43,10,10,10,37, + 38,39,40,41,0,0,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 0,0,0,0,0,63,0,3,0,1, + 2,3,4,12,72,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,61,0,1,2,70,70,71,0, + 72,93,76,42,43,37,38,39,40,41, + 0,12,44,45,46,47,48,49,50,51, + 52,53,54,55,56,57,0,61,121,3, + 0,0,0,7,0,9,43,11,75,5, + 6,42,43,0,10,101,3,0,0,1, + 2,3,4,5,6,7,8,9,10,11, + 26,0,0,37,38,39,40,0,0,124, + 44,4,24,25,26,27,28,29,30,31, + 32,33,34,35,36,75,0,61,120,0, + 1,2,25,67,68,69,70,0,0,73, + 0,75,5,6,70,75,75,75,0,11, + 10,0,0,0,0,67,90,91,92,71, + 73,95,96,97,98,99,100,101,102,103, + 104,63,43,0,108,73,110,111,112,113, + 114,115,116,117,118,119,0,1,2,3, + 4,0,41,7,8,9,0,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 0,0,105,106,107,0,76,0,3,67, + 3,0,74,37,38,39,40,41,74,0, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,0,1,2,3,4,63, + 0,7,8,9,0,11,12,13,14,15, + 16,17,18,19,20,21,22,23,0,0, + 74,3,3,0,0,0,0,0,3,0, + 0,37,38,39,40,41,10,10,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,0,26,75,0,1,2,3,4, + 0,67,7,8,9,61,11,12,13,14, + 15,16,17,18,19,20,21,22,23,0, + 0,0,3,3,3,0,0,0,3,3, + 3,0,37,38,39,40,41,71,74,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,0,1,2,3,4,63,93, + 7,8,9,93,11,12,13,14,15,16, + 17,18,19,20,21,22,23,0,0,0, + 3,3,0,0,121,3,3,0,0,0, + 37,38,39,40,41,0,0,44,45,46, + 47,48,49,50,51,52,53,54,55,56, + 57,0,1,2,3,4,0,0,7,8, + 9,0,11,12,13,14,15,16,17,18, + 19,20,21,22,23,0,0,0,0,0, + 0,0,0,0,0,0,67,0,37,38, + 39,40,41,0,0,44,45,46,47,48, + 49,50,51,52,53,54,55,56,57,0, + 1,2,3,4,0,0,7,8,9,0, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,0,0,0,75,0,61,0, + 0,0,0,0,0,0,37,38,39,40, + 41,75,0,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,0,1,2, + 0,4,5,6,0,0,0,0,0,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,0,27,28,29,30,31,32, + 33,34,35,36,0,0,0,0,0,42, + 0,0,0,0,0,0,0,1,2,0, + 4,5,6,0,0,58,59,60,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,0,27,28,29,30,31,32,33, + 34,35,36,0,0,0,0,0,42,0, + 0,0,0,0,0,0,0,0,0,5, + 6,0,0,0,58,59,60,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 0,27,28,29,30,31,32,33,34,35, + 36,0,0,0,0,0,0,0,0,0, + 0,10,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,26,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,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0 + }; + }; + public final static byte termCheck[] = TermCheck.termCheck; + public final int termCheck(int index) { return termCheck[index]; } + + public interface TermAction { + public final static char termAction[] = {0, + 6128,6020,5666,5666,5666,5666,5666,5666,5666,5666, + 6051,5666,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6024,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,337,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6128,2460,1,661,6304,603,6466,1,1, + 6467,6134,6139,6128,5832,5829,6135,1379,3555,3160, + 2249,3056,3490,3698,3553,1738,3552,2870,3541,10, + 6054,6054,6054,6054,6054,6054,6054,6054,6054,6054, + 6054,6054,6054,6054,6054,6054,6054,6054,6054,6054, + 6054,6054,6054,6054,6054,6054,6054,6054,6054,6054, + 6054,6054,6054,6054,6054,6054,6054,6054,6054,6054, + 6054,6054,6133,6054,6054,6054,6054,6054,6054,6054, + 6054,6054,6054,6054,6054,6054,6054,6054,6054,6054, + 1,6054,6054,6054,6054,6054,6128,6054,6054,853, + 162,6054,6128,6142,6143,6054,6054,6054,6054,6054, + 6054,6054,6054,6054,6054,6054,6054,6054,8,6075, + 6075,6075,6075,6075,6075,6075,6075,6075,6075,6075, + 6075,6075,6075,6075,6075,6075,6075,6075,6075,6075, + 6075,6075,6075,6075,6075,6075,6075,6075,6075,6075, + 6075,6075,6075,6075,6075,6075,6075,6075,6075,6075, + 6075,162,6075,6075,6075,6075,6075,6075,6075,6075, + 6075,6075,6075,6075,6075,6075,6075,6075,6075,1, + 6075,6075,6075,6075,6075,6128,6075,6075,1015,529, + 6075,6128,9459,7306,6075,6075,6075,6075,6075,6075, + 6075,6075,6075,6075,6075,6075,6075,6128,6020,5666, + 5666,5666,5666,5666,5666,5666,5666,6027,5666,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,6024,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 529,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2460, + 1,661,6304,603,1,1,1,396,164,6139, + 385,389,924,1018,1379,3555,3160,2249,3056,3490, + 3698,3553,1738,3552,2870,3541,6128,6020,5666,5666, + 5666,5666,5666,5666,5666,5666,6027,5666,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,6024,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,164, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2460,1, + 661,6304,603,116,1,1,6128,6134,6139,49, + 5832,5829,4462,1379,3555,3160,2249,3056,3490,3698, + 3553,1738,3552,2870,3541,6128,6020,5666,5666,5666, + 5666,5666,5666,5666,5666,6027,5666,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6024,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,6133,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6128,2460,1,661, + 6304,603,118,1,1,2567,397,6139,4426,3371, + 388,4462,1379,3555,3160,2249,3056,3490,3698,3553, + 1738,3552,2870,3541,6128,6020,5666,5666,5666,5666, + 5666,5666,5666,5666,6027,5666,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6024,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1136,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,6128,2460,1,661,6304, + 603,117,1,1,6128,49,6139,4426,3371,6143, + 4462,1379,3555,3160,2249,3056,3490,3698,3553,1738, + 3552,2870,3541,6128,6020,5666,5666,5666,5666,5666, + 5666,5666,5666,6027,5666,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,6024, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6143,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,6128,2460,1,661,6304,603, + 40,1,1,314,6167,6139,4426,3371,924,1018, + 1379,3555,3160,2249,3056,3490,3698,3553,1738,3552, + 2870,3541,6128,6020,5666,5666,5666,5666,5666,5666, + 5666,5666,6027,5666,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,6024,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,6128,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,136,2460,1,661,6304,603,6128, + 1,1,1156,388,6139,398,6142,6143,449,1379, + 3555,3160,2249,3056,3490,3698,3553,1738,3552,2870, + 3541,6128,6020,5666,5666,5666,5666,5666,5666,5666, + 5666,6027,5666,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,6024,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5826,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,758,2460,1,661,6304,603,6128,1, + 1,396,455,6139,1,2649,924,1018,1379,3555, + 3160,2249,3056,3490,3698,3553,1738,3552,2870,3541, + 6128,6020,5666,5666,5666,5666,5666,5666,5666,5666, + 6027,5666,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,6024,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5853,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1196,2460,1,661,6304,603,6128,1,1, + 563,441,6139,555,1793,924,1018,1379,3555,3160, + 2249,3056,3490,3698,3553,1738,3552,2870,3541,6128, + 6020,5666,5666,5666,5666,5666,5666,5666,5666,6027, + 5666,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,6024,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5856,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6128,2460,1,661,6304,603,6128,1,1,571, + 30,6139,554,1793,924,1018,1379,3555,3160,2249, + 3056,3490,3698,3553,1738,3552,2870,3541,6128,6020, + 5666,5666,5666,5666,5666,5666,5666,5666,6027,5666, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,6024,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5859,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,302, + 2460,1,661,6304,603,6128,1,1,6128,6128, + 6139,6429,1815,546,6675,1379,3555,3160,2249,3056, + 3490,3698,3553,1738,3552,2870,3541,40,5672,5669, + 4261,1354,924,1018,4550,3512,4640,6676,4662,1538, + 6393,6391,6400,6399,6395,6396,6394,6397,6398,6401, + 6392,6466,6389,112,6467,6383,6390,6386,6362,6388, + 6387,6384,6385,6363,4618,4583,4706,4684,6148,6527, + 6128,4521,1998,2069,6150,2015,3638,2061,6151,6149, + 1977,6144,6146,6147,6145,2745,6528,6529,6128,6128, + 1467,6128,5908,5908,230,5904,5666,5666,230,230, + 230,5912,230,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,230,1,1, + 1,1,1,1,1,1,1,1,6128,5672, + 5669,5662,6167,1,5901,310,5685,5681,5049,5678, + 5838,5835,838,3512,5841,4750,5841,4772,6128,1, + 1,1,562,998,225,2152,6541,924,1018,5704, + 5707,4860,6128,5672,5669,230,6167,417,332,5672, + 5669,5049,1354,924,1018,838,3512,6128,6466,6389, + 6629,6467,6383,6390,6386,6362,6388,6387,6384,6385, + 6363,1398,30,38,5895,5895,6564,6565,6566,6128, + 5908,5908,230,5904,5666,5666,230,230,230,5981, + 230,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,230,1,1,1,1, + 1,1,1,1,1,1,6165,6128,9459,7306, + 440,1,5901,6128,5685,5681,5049,5678,5838,5835, + 838,3512,5880,1136,5880,3624,6128,1,1,1, + 6128,998,226,2152,6541,122,425,5710,5713,1907, + 6128,6458,6128,230,2565,416,1,5685,5681,5049, + 5678,5838,5835,838,3512,6128,6466,6389,6629,6467, + 6383,6390,6386,6362,6388,6387,6384,6385,6363,6128, + 6128,6128,5954,5951,6564,6565,6566,6128,5666,5666, + 230,5666,5666,5666,230,230,230,5695,230,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,230,1,1,1,9802,1,1, + 1,1,1,1,6165,6564,6565,6566,34,1, + 5663,5892,302,5892,5892,3587,3675,5892,5892,5892, + 1825,6128,6142,6143,6429,1,1,1,1553,614, + 227,661,6340,603,5892,5725,5728,558,312,6128, + 1922,1595,6128,220,138,5892,5892,5892,5892,6136, + 6128,44,5960,5960,6466,6389,6629,6467,6383,6390, + 6386,6362,6388,6387,6384,6385,6363,544,6128,5892, + 1160,38,5895,5895,989,5892,924,1018,5892,5892, + 332,5892,5892,5892,5892,1,5685,5681,5675,5678, + 220,1401,5692,5689,5957,321,134,140,5892,5892, + 5892,5892,5892,5892,5892,5892,5892,5892,5892,5892, + 5892,5892,5892,1113,6165,6135,5892,5892,5892,5892, + 5892,5892,5892,5892,5892,5892,5892,5892,5892,6128, + 5892,570,6008,6128,6008,6008,924,1018,6008,6008, + 6008,1,5685,5681,5049,5678,228,2598,838,3512, + 319,5734,5737,5877,6128,6008,1,5685,5681,5049, + 5678,6128,619,838,3512,3155,6008,6008,6008,6008, + 6466,6389,1973,6467,6383,6390,6386,6362,6388,6387, + 6384,6385,6363,346,40,40,2464,6167,924,1018, + 6008,130,332,131,332,696,6008,2684,6128,6008, + 6008,2490,6008,6008,6008,6008,4841,1927,1881,1835, + 1789,1743,1697,1651,1605,1559,1513,619,6128,6008, + 6008,6008,6008,6008,6008,6008,6008,6008,6008,6008, + 6008,6008,6008,6008,291,6142,6143,6008,6008,6008, + 6008,6008,6008,6008,6008,6008,6008,6008,6008,6008, + 619,6008,6128,5666,5666,230,5666,5666,5666,230, + 230,230,230,230,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,230,1, + 1,1,9802,1,1,1,1,1,1,309, + 3104,3072,3104,3072,1,5663,30,388,388,6042, + 388,388,388,388,388,6042,6042,6042,119,6128, + 1,1,1,2013,614,40,661,6340,603,6167, + 388,388,6042,388,388,388,388,388,388,388, + 388,388,388,445,1,1,139,1,5883,5883, + 3188,6629,5883,6128,5883,4222,671,368,5685,5681, + 3136,5678,1,1,838,3512,1,5859,1,2938, + 1,6033,6033,6042,6030,5838,5835,6042,6128,332, + 364,332,46,6017,6017,221,6128,5666,5666,230, + 5666,5666,5666,230,230,230,230,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,230,1,1,1,9802,1,1,1, + 1,1,1,2792,619,6014,4958,6128,1,5663, + 5238,48,1268,287,5731,5731,6128,284,924,1018, + 6128,364,36,2147,1,1,1,1400,614,2598, + 661,6340,603,6128,5685,5681,5049,5678,5838,5835, + 838,3512,5841,364,5841,1,5685,5681,5049,5678, + 5838,5835,838,3512,1262,6629,6128,5666,5666,230, + 5666,5666,5666,230,230,230,5898,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,230,1,1,1,9802,1,1,1, + 1,1,1,115,37,6101,6098,1630,1,5663, + 6128,1,5685,5681,5675,5678,132,2157,5692,5689, + 6128,6138,126,6128,1,1,1,2836,614,2157, + 661,6340,603,6134,568,5874,5874,6137,572,924, + 1018,516,221,6128,5685,5681,5049,5678,5838,5835, + 838,3512,5880,6128,5880,6629,6128,5666,5666,230, + 5666,5666,5666,230,230,230,5898,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,230,1,1,1,9802,1,1,1, + 1,1,1,2044,6133,4750,125,4772,1,5663, + 1,5685,5681,5049,5678,5838,5835,838,3512,6128, + 310,941,3587,3675,1,1,1,2157,614,40, + 661,6340,603,6167,924,1018,310,6530,332,6128, + 332,137,221,346,5672,5669,3136,1354,924,1018, + 838,3512,332,6128,332,6629,6128,5666,5666,230, + 5666,5666,5666,230,230,230,5898,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,230,1,1,1,9802,1,1,1, + 1,1,1,6128,140,124,3587,3675,1,5663, + 446,40,40,6138,6167,5993,5990,332,114,5996, + 619,5996,924,1018,1,1,1,450,614,6137, + 661,6340,603,1,5685,5681,5049,5678,5838,5835, + 838,3512,221,6128,6069,6069,6069,6069,6069,6069, + 6069,6069,6069,2649,6069,6629,6128,5666,5666,230, + 5666,5666,5666,230,230,230,230,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,230,1,1,1,9802,1,1,1, + 1,1,1,406,123,3587,3675,2406,1,5663, + 93,1,1,5975,1,6072,6072,2157,2490,6072, + 4750,6072,4772,4841,1,1,1,6069,614,5978, + 661,6340,603,1,5685,5681,3136,5678,363,429, + 838,3512,459,5999,1,5685,5681,3136,5678,6128, + 348,838,3512,2793,38,6629,6128,5666,5666,230, + 5666,5666,5666,230,230,230,230,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,230,1,1,1,9802,1,1,1, + 1,1,1,6128,3587,3675,3453,6165,1,5663, + 619,96,40,40,6002,6167,6110,6107,1203,5886, + 6113,619,6113,917,1,1,1,619,614,564, + 661,6340,603,1,924,1018,2464,6128,5672,5669, + 113,1354,6128,342,838,3512,6128,5672,5669,290, + 1354,6128,6132,838,3512,6629,6128,5666,5666,230, + 5666,5666,5666,230,230,230,230,230,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,230,1,1,1,9802,1,1,1, + 1,1,1,2674,6128,6128,6142,6143,1,5663, + 619,158,6128,342,342,6140,342,396,6128,6128, + 6142,6143,924,1018,1,1,1,6128,614,967, + 661,6340,603,395,5722,5722,6128,284,5719,5716, + 76,1,4750,2894,4772,1,5685,5681,4261,5678, + 6128,5987,4550,3512,4640,6629,4662,5915,5942,5948, + 5921,5924,5936,5933,5939,5930,5927,5918,5945,569, + 5871,5871,6131,572,5868,5865,284,6139,1136,6191, + 6192,2019,4618,4583,4706,4684,6148,4728,1786,4521, + 1998,2069,6150,2015,3638,2061,6151,6149,1977,6144, + 6146,6147,6145,39,5850,5847,2792,4418,1467,3628, + 5844,3512,572,40,40,6128,458,6135,517,40, + 5672,5669,4261,1354,2289,6140,4550,3512,4640,6104, + 4662,1963,6393,6391,6400,6399,6395,6396,6394,6397, + 6398,6401,6392,6128,5672,5669,6128,1354,711,418, + 6011,3512,6128,1553,924,1018,4618,4583,4706,4684, + 6148,359,783,4521,1998,2069,6150,2015,3638,2061, + 6151,6149,1977,6144,6146,6147,6145,6128,5672,5669, + 6128,1354,1467,5889,6011,3512,1001,6139,6128,5832, + 5829,5966,6128,121,127,6135,40,5672,5669,4261, + 1354,120,427,4550,3512,4640,5963,4662,1963,6393, + 6391,6400,6399,6395,6396,6394,6397,6398,6401,6392, + 1209,6128,6142,6143,6128,129,6128,6128,838,3512, + 4222,671,6128,4618,4583,4706,4684,6148,4222,671, + 4521,1998,2069,6150,2015,3638,2061,6151,6149,1977, + 6144,6146,6147,6145,6486,3427,4728,1786,92,1467, + 6128,6005,142,5672,5669,4261,1354,5984,5966,4550, + 3512,4640,2055,4662,1963,6393,6391,6400,6399,6395, + 6396,6394,6397,6398,6401,6392,3427,1136,1400,6128, + 6128,3341,3162,6128,1,128,6128,2464,6045,4618, + 4583,4706,4684,6148,5999,6641,4521,1998,2069,6150, + 2015,3638,2061,6151,6149,1977,6144,6146,6147,6145, + 6128,852,3341,3162,6128,1467,6128,6128,2242,6128, + 40,40,552,5672,5669,4261,1354,6134,49,4550, + 3512,4640,6142,4662,1963,6393,6391,6400,6399,6395, + 6396,6394,6397,6398,6401,6392,3427,566,6128,6128, + 6128,619,6060,6057,6128,6002,6584,2465,6048,4618, + 4583,4706,4684,6148,6134,6128,4521,1998,2069,6150, + 2015,3638,2061,6151,6149,1977,6144,6146,6147,6145, + 5195,292,3341,3162,349,1467,6128,6128,6133,6142, + 40,40,1,5685,5681,4261,5678,6134,6128,4550, + 3512,4640,2059,4662,5915,5942,5948,5921,5924,5936, + 5933,5939,5930,5927,5918,5945,38,5895,5895,6128, + 6128,565,6570,5895,6128,6133,6066,6063,6128,4618, + 4583,4706,4684,6148,6138,3613,4521,1998,2069,6150, + 2015,3638,2061,6151,6149,1977,6144,6146,6147,6145, + 6137,619,6128,10098,10098,1467,2197,1421,6133,1645, + 40,40,40,5672,5669,4261,1354,376,1,4550, + 3512,4640,5963,4662,1963,6393,6391,6400,6399,6395, + 6396,6394,6397,6398,6401,6392,6128,6128,1,5220, + 6128,6128,3558,3560,3249,6165,6136,6134,5862,4618, + 4583,4706,4684,6148,135,186,4521,1998,2069,6150, + 2015,3638,2061,6151,6149,1977,6144,6146,6147,6145, + 6128,1,6128,371,238,1467,6128,6036,40,5672, + 5669,4261,1354,5969,5966,4550,3512,4640,6132,4662, + 1963,6393,6391,6400,6399,6395,6396,6394,6397,6398, + 6401,6392,5463,38,5895,5895,1066,5596,6133,1, + 6139,6488,6135,5972,2645,4618,4583,4706,4684,6148, + 369,5969,4521,1998,2069,6150,2015,3638,2061,6151, + 6149,1977,6144,6146,6147,6145,1,2790,3613,1784, + 509,507,421,6598,6128,6592,1461,6596,1314,6083, + 6079,5972,2645,1,6087,2684,5587,6128,33,389, + 389,6039,389,389,389,389,389,6039,6039,6039, + 6087,6128,6128,6590,6591,6621,6622,40,533,6125, + 6599,6167,389,389,6039,389,389,389,389,389, + 389,389,389,389,389,1375,6128,6601,6131,6128, + 6094,6090,1677,709,1687,1747,6623,419,133,6602, + 8,6600,924,1018,6087,5569,5576,2341,6128,2836, + 6119,1,101,6128,6128,6039,6612,6611,6624,6039, + 3610,6593,6594,6617,6618,6615,6616,6595,6597,6619, + 6620,3705,6165,6128,6625,3612,6605,6606,6607,6603, + 6604,6613,6614,6609,6608,6610,40,5672,5669,4261, + 1354,6128,845,4550,3512,4640,6128,4662,1963,6393, + 6391,6400,6399,6395,6396,6394,6397,6398,6401,6392, + 6128,6128,6564,6565,6566,6128,6119,6128,4983,5522, + 5536,6128,2065,4618,4583,4706,4684,6148,3742,6128, + 4521,1998,2069,6150,2015,3638,2061,6151,6149,1977, + 6144,6146,6147,6145,40,5672,5669,4261,1354,1467, + 6128,4550,3512,4640,74,4662,1963,6393,6391,6400, + 6399,6395,6396,6394,6397,6398,6401,6392,6128,6128, + 3786,5194,5539,522,6128,6128,1,1,4843,6128, + 1,4618,4583,4706,4684,6148,364,6138,4521,1998, + 2069,6150,2015,3638,2061,6151,6149,1977,6144,6146, + 6147,6145,6128,6137,1630,40,5672,5669,4261,1354, + 6128,2899,4550,3512,4640,6116,4662,1963,6393,6391, + 6400,6399,6395,6396,6394,6397,6398,6401,6392,6128, + 6128,6128,4844,4953,5422,6128,6128,6128,4021,3875, + 3919,6128,4618,4583,4706,4684,6148,364,3830,4521, + 1998,2069,6150,2015,3638,2061,6151,6149,1977,6144, + 6146,6147,6145,40,5672,5669,5525,1354,1467,364, + 4550,3512,4640,3591,4662,1963,6393,6391,6400,6399, + 6395,6396,6394,6397,6398,6401,6392,6128,104,100, + 5603,3942,6128,279,3613,2572,6122,6128,6128,6128, + 4618,4583,4706,4684,6148,6128,6128,4521,1998,2069, + 6150,2015,3638,2061,6151,6149,1977,6144,6146,6147, + 6145,40,5672,5669,4261,1354,6128,6128,4550,3512, + 4640,6128,4662,1963,6393,6391,6400,6399,6395,6396, + 6394,6397,6398,6401,6392,6128,511,2,6128,6128, + 6128,6128,6128,6128,6128,6128,2381,6128,4618,4583, + 4706,4684,6148,6128,6128,4521,1998,2069,6150,2015, + 3638,2061,6151,6149,1977,6144,6146,6147,6145,40, + 5672,5669,4261,1354,6128,6128,4550,3512,4640,6128, + 4662,1963,6393,6391,6400,6399,6395,6396,6394,6397, + 6398,6401,6392,6128,6128,6128,2111,6128,38,6128, + 6128,6128,6128,6128,6128,6128,4618,4583,4706,4684, + 6148,858,6128,4521,1998,2069,6150,2015,3638,2061, + 6151,6149,1977,6144,6146,6147,6145,6128,5672,5669, + 6128,6167,924,1018,6128,6128,6128,6128,6128,644, + 6393,6391,6400,6399,6395,6396,6394,6397,6398,6401, + 6392,6466,6389,6128,6467,6383,6390,6386,6362,6388, + 6387,6384,6385,6363,6128,6128,6128,6128,6128,6527, + 6128,6128,6128,6128,6128,6128,242,5819,5815,6128, + 5823,5746,5749,6128,6128,2745,6528,6529,644,5806, + 5812,5785,5788,5800,5797,5803,5794,5791,5782,5809, + 5755,5761,6128,5752,5779,5758,5770,5743,5764,5767, + 5776,5773,5740,6128,6128,6128,6128,6128,6527,6128, + 6128,6128,6128,6128,224,6128,6128,6128,6128,5698, + 5701,6128,6128,6128,2745,6528,6529,6393,6391,6400, + 6399,6395,6396,6394,6397,6398,6401,6392,6466,6389, + 6128,6467,6383,6390,6386,6362,6388,6387,6384,6385, + 6363,1,6128,6128,6128,6128,6128,6128,6128,6128, + 6128,192,6128,6128,6128,6128,6128,6128,6128,6128, + 6128,6128,6128,6128,6128,6128,6128,192 + }; + }; + public final static char termAction[] = TermAction.termAction; + public final int termAction(int index) { return termAction[index]; } + + public interface Asb { + public final static char asb[] = {0, + 896,1,1118,1076,860,1162,260,1078,650,206, + 1126,890,151,650,956,1076,1076,967,208,967, + 586,967,578,967,951,967,890,154,62,1162, + 1024,317,660,660,820,154,660,154,1076,524, + 564,364,1127,208,466,154,152,463,763,462, + 211,588,257,586,206,890,578,262,154,154, + 258,892,592,592,708,10,3,3,1027,601, + 707,1024,1024,154,1172,463,262,262,657,59, + 463,660,660,524,660,154,406,773,227,1128, + 1128,1127,1127,1127,890,154,152,708,539,463, + 461,462,211,154,590,944,518,258,208,526, + 154,262,258,154,403,592,208,890,10,18, + 1024,1030,154,114,166,1024,10,403,653,262, + 262,1027,59,59,152,773,227,1127,361,1127, + 154,708,708,514,513,462,361,154,211,1187, + 206,524,150,1175,211,590,519,592,590,592, + 258,526,526,154,564,504,1076,524,524,524, + 524,890,1076,96,319,115,115,115,115,115, + 115,115,115,115,662,668,673,670,677,675, + 682,680,684,683,685,412,686,563,154,892, + 154,208,76,545,154,1076,59,700,1031,463, + 114,361,208,1024,10,1033,653,564,564,657, + 463,725,711,724,563,524,531,531,361,361, + 154,539,463,420,463,406,1177,592,592,592, + 592,154,526,361,566,360,1027,769,721,720, + 96,860,860,860,860,154,421,463,463,96, + 1035,859,406,96,662,937,937,421,114,115, + 115,115,115,115,115,115,115,115,115,115, + 115,115,115,115,115,115,115,115,114,114, + 114,114,114,114,114,114,114,114,114,114, + 115,96,403,537,77,890,154,421,571,361, + 166,653,652,549,114,722,722,767,1027,324, + 227,1128,227,562,562,708,514,152,707,115, + 1187,11,596,705,1177,592,592,157,361,115, + 154,504,463,771,773,463,463,564,564,564, + 564,258,463,115,729,973,973,890,319,59, + 859,114,463,151,153,151,463,59,670,670, + 668,668,668,675,675,675,675,673,673,680, + 677,677,683,682,684,1187,685,537,76,1187, + 115,1187,708,75,1076,1076,1076,77,1076,154, + 607,708,708,154,208,463,114,166,653,549, + 114,114,771,711,227,860,860,420,708,1177, + 115,115,705,705,1177,1177,545,889,158,154, + 463,773,1076,1076,1076,1076,154,154,154,406, + 115,860,666,470,463,154,153,406,114,67, + 1076,67,77,1187,77,96,96,94,894,96, + 708,708,16,537,360,551,563,705,705,157, + 154,890,890,154,810,463,114,114,114,114, + 1076,1076,258,152,463,666,1027,892,154,152, + 324,77,463,1024,463,94,1162,1076,463,537, + 359,165,551,808,154,154,154,810,810,463, + 463,463,463,421,421,154,666,667,666,114, + 470,410,662,892,463,463,1021,77,16,77, + 708,1162,114,77,74,359,359,1076,531,154, + 154,558,810,463,463,1008,666,421,115,59, + 410,208,208,1023,114,75,421,708,463,774, + 562,558,558,667,463,59,77,463,708,514, + 151,558,77,860 + }; + }; + public final static char asb[] = Asb.asb; + public final int asb(int index) { return asb[index]; } + + public interface Asr { + public final static byte asr[] = {0, + 123,0,77,73,74,93,71,72,67,3, + 10,70,26,5,6,75,0,68,69,3, + 12,46,50,48,45,53,14,23,13,19, + 17,18,20,21,16,15,22,54,57,55, + 56,41,52,47,51,7,8,4,39,40, + 11,9,37,38,44,49,1,2,120,10, + 0,10,74,72,77,0,89,105,106,107, + 43,74,123,121,124,76,65,77,64,62, + 66,79,81,87,85,78,83,84,86,88, + 72,80,82,26,10,28,42,24,58,29, + 30,31,32,33,34,35,59,36,60,25, + 27,5,6,63,68,69,46,50,48,45, + 53,14,23,13,19,17,18,20,21,16, + 15,22,54,57,55,56,41,52,47,51, + 3,39,40,11,9,37,38,44,49,12, + 4,8,7,1,2,0,25,1,2,4, + 105,106,107,0,76,68,69,63,39,40, + 11,9,37,38,7,44,49,3,4,8, + 54,57,55,56,41,52,47,51,14,23, + 13,19,17,18,20,21,16,15,22,12, + 46,50,48,45,53,1,2,72,10,0, + 89,62,8,105,106,107,64,10,3,11, + 9,7,74,76,26,65,28,13,14,42, + 24,15,58,29,30,16,31,32,17,18, + 33,34,19,20,35,59,36,12,60,21, + 25,22,27,23,5,6,4,1,2,43, + 0,28,13,14,42,24,45,15,46,58, + 29,30,47,16,31,32,17,18,33,34, + 48,19,20,49,35,50,59,51,63,52, + 36,53,12,60,21,25,22,27,23,54, + 55,56,41,3,39,40,11,9,37,38, + 44,73,4,5,6,57,8,7,1,2, + 69,68,0,28,13,14,42,24,15,58, + 29,30,16,31,32,17,18,33,34,19, + 20,35,59,36,12,60,21,25,22,27, + 23,1,2,4,5,6,93,0,26,70, + 76,10,0,66,28,13,14,42,24,15, + 58,29,89,30,16,31,32,17,18,33, + 62,34,19,20,35,59,36,12,60,21, + 64,25,22,27,23,3,11,4,26,65, + 72,10,9,5,6,8,43,1,2,7, + 0,73,74,93,120,76,26,5,6,70, + 13,14,45,68,15,46,47,16,17,18, + 69,8,48,19,20,49,50,51,63,52, + 53,12,21,22,23,54,55,56,41,2, + 39,40,11,9,37,38,7,44,4,57, + 3,1,71,10,0,10,72,75,0,92, + 94,37,38,95,96,90,91,61,97,98, + 99,100,101,102,103,104,109,74,93,75, + 110,111,112,113,114,115,116,117,118,119, + 120,76,26,73,1,2,11,9,4,5, + 6,67,3,71,10,70,0,4,10,74, + 72,5,6,61,0,1,2,10,76,0, + 73,75,70,1,2,0,121,0,10,70, + 71,1,24,0,10,72,70,0,24,27, + 77,3,74,26,72,5,6,63,10,93, + 71,75,70,73,0,10,70,76,75,0, + 10,74,120,71,26,70,0,4,10,72, + 5,6,1,2,0,43,4,1,2,5, + 6,10,74,72,0,74,67,5,6,61, + 10,70,26,75,3,0,13,14,45,68, + 15,46,47,16,17,18,69,8,48,19, + 20,49,50,51,63,52,53,12,21,22, + 23,54,55,56,1,2,3,39,40,11, + 9,37,38,7,44,4,57,26,10,41, + 0,63,24,8,27,7,1,2,4,77, + 72,122,108,39,40,67,3,94,92,9, + 95,96,37,38,91,90,61,97,98,99, + 100,11,101,102,103,73,93,71,75,110, + 111,112,113,114,115,116,117,118,119,74, + 120,76,104,109,5,6,70,26,10,0, + 11,9,5,6,8,7,4,1,2,3, + 67,73,75,70,10,71,93,0,28,13, + 14,24,15,29,30,16,31,32,17,18, + 33,8,34,19,20,35,36,21,25,22, + 27,23,1,2,67,11,9,7,4,26, + 5,6,71,10,3,0,7,8,3,67, + 9,11,93,28,13,14,24,15,58,29, + 30,16,31,32,17,18,33,34,19,20, + 35,59,36,12,60,21,25,22,27,23, + 1,2,4,5,6,71,10,42,0,24, + 63,27,10,73,93,75,70,71,0,69, + 68,37,38,9,95,96,101,11,102,7, + 44,75,61,73,113,114,110,111,112,118, + 117,119,91,90,115,116,99,100,97,98, + 103,104,39,40,70,92,108,67,3,12, + 58,42,59,60,14,23,13,19,17,18, + 20,21,16,15,22,28,34,35,30,33, + 32,29,24,27,6,5,31,36,25,1, + 2,4,0,78,0,11,9,10,26,3, + 28,13,14,42,24,15,58,29,16,31, + 32,17,18,33,34,19,20,35,59,36, + 12,60,21,25,22,27,23,123,65,62, + 30,89,66,64,5,6,8,4,43,7, + 1,2,0,4,10,74,72,5,6,0, + 12,58,42,59,60,14,23,13,19,17, + 18,20,21,16,15,22,77,74,93,120, + 76,72,122,94,108,92,39,40,37,38, + 95,96,90,91,61,73,97,98,99,100, + 101,102,103,104,109,75,110,111,112,113, + 114,115,116,117,118,119,70,28,24,29, + 30,31,32,33,34,35,36,25,27,26, + 10,71,67,7,8,3,1,2,4,11, + 5,6,9,0,68,69,39,40,11,9, + 37,38,7,44,49,4,8,54,57,55, + 56,41,52,47,51,14,23,13,19,17, + 18,20,21,16,15,22,12,46,50,48, + 45,53,67,1,2,3,0,15,58,29, + 16,31,32,17,18,33,34,19,20,35, + 59,36,60,21,25,22,27,23,24,42, + 14,13,28,10,3,11,9,26,64,66, + 89,30,65,61,5,6,43,8,1,2, + 7,4,12,62,0,123,76,15,58,29, + 16,31,32,17,18,33,34,19,20,35, + 59,36,12,60,21,25,22,27,23,24, + 42,14,13,28,65,62,30,89,66,64, + 43,10,26,5,6,7,8,1,2,4, + 3,9,11,0,26,10,3,8,7,11, + 9,4,1,2,5,6,74,0 + }; + }; + public final static byte asr[] = Asr.asr; + public final int asr(int index) { return asr[index]; } + + public interface Nasb { + public final static char nasb[] = {0, + 199,12,25,12,5,256,12,236,12,15, + 236,80,80,12,226,12,12,227,180,227, + 130,227,130,227,220,12,10,163,174,123, + 169,155,12,12,189,233,12,163,12,12, + 12,179,174,180,12,193,193,147,147,84, + 174,204,80,214,15,80,214,174,163,11, + 12,12,174,91,161,130,13,13,265,68, + 12,151,208,163,12,147,174,174,70,23, + 147,12,12,12,12,11,29,174,174,236, + 236,174,199,174,80,66,155,161,139,147, + 12,98,248,205,130,130,12,193,180,174, + 193,37,49,205,141,91,88,45,214,18, + 151,214,163,100,74,124,130,241,174,37, + 37,265,23,23,155,275,275,199,55,199, + 193,161,161,147,12,147,55,163,161,12, + 65,12,25,255,248,130,130,174,214,174, + 49,174,234,11,12,135,12,12,12,12, + 12,80,12,216,163,76,76,229,76,76, + 76,76,76,76,12,12,12,12,12,12, + 12,12,12,12,12,76,12,12,205,12, + 11,88,54,12,193,12,23,12,130,147, + 76,174,180,208,214,12,52,12,12,280, + 147,12,167,12,12,12,116,116,55,55, + 66,139,147,76,147,29,123,174,174,132, + 132,205,234,55,12,12,265,134,13,13, + 216,42,42,42,42,163,118,147,147,1, + 76,108,29,216,12,31,31,118,186,76, + 76,76,76,76,76,76,76,76,76,76, + 76,76,76,76,76,76,76,76,76,76, + 76,76,76,76,76,76,76,76,76,186, + 76,37,141,174,176,45,11,118,12,55, + 174,174,52,174,76,12,12,166,265,275, + 275,236,174,12,12,161,147,155,161,76, + 12,86,12,130,208,132,132,59,55,76, + 234,278,147,263,174,147,147,12,12,12, + 12,28,147,76,12,12,12,10,163,23, + 42,100,147,154,163,154,147,23,12,12, + 12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,63,182,12, + 76,12,161,12,12,12,12,183,12,234, + 159,161,161,234,95,147,76,74,52,52, + 76,76,263,149,275,42,42,76,161,124, + 76,76,214,130,208,12,12,80,103,193, + 147,275,12,12,12,12,205,11,163,29, + 76,42,174,105,147,163,196,29,76,57, + 12,12,183,12,183,244,244,273,12,244, + 161,161,12,174,55,174,12,130,214,110, + 193,80,80,11,174,147,186,186,186,186, + 12,12,27,205,147,121,280,12,233,205, + 42,183,147,169,147,269,174,12,147,63, + 93,73,114,12,11,193,193,52,174,147, + 147,147,147,118,118,205,174,82,12,186, + 280,197,12,12,147,147,174,183,12,183, + 161,124,186,183,57,93,12,12,116,11, + 11,174,52,147,147,12,121,118,76,23, + 197,95,95,167,76,12,284,161,147,145, + 12,114,174,82,147,23,183,147,161,147, + 154,114,183,42 + }; + }; + public final static char nasb[] = Nasb.nasb; + public final int nasb(int index) { return nasb[index]; } + + public interface Nasr { + public final static char nasr[] = {0, + 3,13,10,9,159,157,128,156,155,5, + 2,0,85,0,1,46,0,13,2,9, + 10,5,87,0,163,0,2,143,70,0, + 5,2,9,10,146,0,5,10,9,2, + 13,4,49,0,176,5,175,0,2,70, + 0,69,0,4,72,0,122,0,5,106, + 200,0,168,0,46,110,0,192,0,4, + 203,0,72,136,46,13,2,9,10,5, + 0,148,0,210,0,199,0,46,167,0, + 166,0,169,0,46,65,0,181,0,4, + 36,0,201,0,4,185,0,183,0,5, + 106,172,0,133,0,114,0,4,101,0, + 150,0,94,4,5,10,9,2,62,41, + 0,116,0,30,98,99,4,0,179,0, + 70,145,144,0,49,4,30,0,99,98, + 41,62,67,5,10,9,2,0,4,43, + 42,0,2,48,0,30,99,98,62,5, + 2,9,10,4,0,52,43,187,4,46, + 0,72,46,52,73,4,43,0,4,49, + 204,0,2,66,0,2,123,0,109,86, + 52,4,0,48,2,3,0,62,5,2, + 9,10,4,25,0,4,49,43,0,2, + 5,128,124,125,126,13,91,0,5,10, + 9,13,3,1,0,4,52,86,88,0, + 41,70,0,4,49,108,0,4,52,86, + 106,50,5,0,42,5,2,9,10,4, + 165,0,23,4,5,41,94,0,49,4, + 188,0,43,189,23,4,0,99,98,41, + 5,67,0,4,186,0 + }; + }; + public final static char nasr[] = Nasr.nasr; + public final int nasr(int index) { return nasr[index]; } + + public interface TerminalIndex { + public final static char terminalIndex[] = {0, + 113,114,2,31,122,123,13,79,10,115, + 9,100,48,52,60,68,74,75,86,87, + 102,105,107,54,104,120,106,47,64,66, + 70,73,76,83,89,98,11,12,7,8, + 112,53,93,14,55,61,67,84,88,90, + 94,97,99,109,110,111,125,63,91,101, + 19,77,95,103,124,46,1,58,78,44, + 118,121,20,30,33,119,96,108,49,50, + 56,57,59,69,71,72,85,92,65,17, + 18,6,32,4,15,16,21,22,23,24, + 25,26,27,28,80,81,82,5,29,34, + 35,36,37,38,39,40,41,42,43,117, + 51,3,126,62,116 + }; + }; + public final static char terminalIndex[] = TerminalIndex.terminalIndex; + public final int terminalIndex(int index) { return terminalIndex[index]; } + + public interface NonterminalIndex { + public final static char nonterminalIndex[] = {0, + 132,137,138,0,0,136,0,0,231,237, + 135,0,145,134,0,0,144,150,0,0, + 151,160,182,161,246,0,0,162,163,128, + 164,165,166,167,168,153,169,170,0,143, + 247,130,133,171,0,131,140,139,154,179, + 0,0,0,0,0,0,0,0,206,0, + 203,207,0,147,174,0,157,177,189,0, + 0,129,173,0,0,0,0,0,0,0, + 0,0,0,0,208,0,127,180,0,0, + 188,0,0,204,214,159,210,211,212,0, + 0,148,0,0,209,222,0,176,181,198, + 0,0,213,0,0,0,226,0,228,0, + 242,243,149,191,192,193,194,195,197,200, + 0,201,0,216,219,0,221,0,240,0, + 241,0,0,141,142,146,0,0,156,158, + 0,172,0,183,184,185,186,187,190,0, + 0,196,0,199,205,0,217,218,0,0, + 223,230,0,234,235,236,239,0,248,0, + 250,0,0,152,155,0,175,0,178,0, + 0,202,215,220,0,0,224,225,227,229, + 0,232,233,238,244,245,0,0,0,249, + 0,0,0 + }; + }; + public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; + public final int nonterminalIndex(int index) { return nonterminalIndex[index]; } + + public interface ScopePrefix { + public final static char scopePrefix[] = { + 206,659,678,359,610,626,637,648,442,317, + 331,353,375,393,74,342,462,500,214,667, + 553,52,83,103,112,117,122,177,242,348, + 386,401,406,27,191,323,337,581,59,191, + 452,406,686,59,264,296,21,35,46,93, + 108,138,411,431,435,518,546,575,602,606, + 696,700,704,129,39,129,480,496,509,530, + 594,279,148,148,509,617,633,644,655,254, + 564,1,13,88,88,203,269,272,88,291, + 312,272,272,88,439,543,550,203,88,719, + 142,415,484,524,537,88,157,366,415,157, + 157,366,471,224,6,6,136,287,421,421, + 421,421,522,708,715,6,6,708,715,97, + 287,490,184,136,136,301 + }; + }; + public final static char scopePrefix[] = ScopePrefix.scopePrefix; + public final int scopePrefix(int index) { return scopePrefix[index]; } + + public interface ScopeSuffix { + public final static char scopeSuffix[] = { + 50,25,25,182,25,25,25,25,449,182, + 127,182,182,399,80,328,468,506,220,99, + 559,57,57,57,91,91,127,182,247,182, + 391,391,399,32,196,328,133,586,70,199, + 457,673,691,64,258,258,25,25,50,25, + 91,127,391,127,127,182,294,25,25,25, + 25,25,294,717,43,133,449,449,449,534, + 586,283,152,166,513,621,621,621,621,258, + 568,4,4,91,91,25,25,275,277,294, + 25,315,315,277,127,25,294,25,579,25, + 145,418,487,527,540,598,152,381,589,160, + 171,369,474,227,11,19,127,289,423,425, + 427,429,127,710,710,8,16,712,712,99, + 283,492,186,249,234,303 + }; + }; + public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; + public final int scopeSuffix(int index) { return scopeSuffix[index]; } + + public interface ScopeLhs { + public final static char scopeLhs[] = { + 50,17,17,126,17,17,17,17,76,90, + 51,83,126,125,80,56,76,75,50,17, + 19,3,7,8,172,172,171,124,50,84, + 125,125,127,26,135,57,51,146,140,135, + 76,17,17,140,100,58,178,142,79,175, + 172,171,127,190,54,65,150,18,17,17, + 17,17,17,12,122,171,76,75,75,39, + 146,67,137,137,75,17,17,17,17,100, + 19,117,132,176,172,192,98,105,60,85, + 59,165,68,127,77,151,150,183,146,16, + 171,127,108,74,21,146,137,126,146,137, + 137,126,76,50,117,132,171,67,158,157, + 156,155,71,144,48,117,132,144,48,175, + 67,108,124,50,50,58 + }; + }; + public final static char scopeLhs[] = ScopeLhs.scopeLhs; + public final int scopeLhs(int index) { return scopeLhs[index]; } + + public interface ScopeLa { + public final static byte scopeLa[] = { + 121,71,71,76,71,71,71,71,71,76, + 26,76,76,1,73,1,71,124,72,3, + 71,73,73,73,1,1,26,76,72,76, + 1,1,1,71,76,1,1,4,73,70, + 26,1,1,73,71,71,71,71,121,71, + 1,26,1,26,26,76,120,71,71,71, + 71,71,120,1,71,1,71,71,71,74, + 4,9,1,1,71,73,73,73,73,71, + 3,5,5,1,1,71,71,3,1,120, + 71,1,1,1,26,71,120,71,7,71, + 1,43,75,74,71,1,1,72,43,1, + 1,1,78,77,1,1,26,11,1,58, + 42,42,26,4,4,1,1,4,4,3, + 9,1,72,1,1,3 + }; + }; + public final static byte scopeLa[] = ScopeLa.scopeLa; + public final int scopeLa(int index) { return scopeLa[index]; } + + public interface ScopeStateSet { + public final static char scopeStateSet[] = { + 337,212,212,281,212,212,212,212,348,362, + 337,360,281,281,360,339,348,348,337,212, + 212,140,184,184,21,21,69,281,337,360, + 281,281,281,285,277,339,337,37,42,277, + 348,212,212,42,81,117,72,4,348,46, + 21,69,281,35,339,49,8,212,212,212, + 212,212,212,188,16,69,348,348,348,244, + 37,321,281,281,348,212,212,212,212,81, + 212,132,89,46,21,75,81,83,117,77, + 117,137,122,281,348,1,8,40,37,212, + 69,281,11,348,213,37,281,281,37,281, + 281,281,348,337,132,89,69,321,282,282, + 282,282,24,66,93,132,89,66,93,46, + 321,11,281,337,337,117 + }; + }; + public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; + public final int scopeStateSet(int index) { return scopeStateSet[index]; } + + public interface ScopeRhs { + public final static char scopeRhs[] = {0, + 242,166,0,247,0,166,0,226,247,0, + 226,0,193,166,0,177,247,0,177,0, + 333,3,304,0,128,0,332,3,3,5, + 0,128,128,0,331,3,63,0,330,3, + 121,0,128,174,0,129,190,77,0,218, + 0,263,129,61,127,0,20,0,302,129, + 61,43,0,20,53,0,33,134,0,20, + 53,0,0,302,129,61,43,211,0,20, + 180,0,263,129,61,135,0,191,130,0, + 143,0,226,3,301,0,301,0,2,0, + 128,0,263,129,61,134,0,191,130,231, + 0,191,130,25,231,0,191,130,326,25, + 0,131,195,173,130,0,130,0,195,173, + 130,0,136,130,0,177,0,322,129,177, + 0,129,177,0,224,130,0,173,321,253, + 0,138,0,0,0,0,321,253,0,139, + 138,0,0,0,0,137,0,0,0,0, + 139,137,0,0,0,0,320,129,171,262, + 0,129,0,262,0,131,0,0,129,0, + 319,129,171,261,0,129,0,0,44,129, + 0,0,161,3,0,129,292,291,129,77, + 290,177,0,291,129,77,290,177,0,217, + 0,218,0,290,177,0,96,0,0,217, + 0,218,0,205,96,0,0,217,0,218, + 0,291,129,290,177,0,217,0,205,0, + 0,217,0,236,129,3,0,128,0,0, + 0,0,0,236,129,3,223,0,230,3, + 0,219,129,0,210,0,148,0,188,173, + 130,0,10,0,0,0,188,0,9,0, + 221,67,0,127,0,236,129,3,184,0, + 184,0,2,0,0,128,0,0,0,0, + 0,193,3,0,203,0,232,129,171,41, + 30,0,191,130,62,64,0,198,130,0, + 131,191,130,288,64,0,191,130,288,64, + 0,191,130,75,126,62,0,232,129,171, + 62,0,232,129,171,235,62,0,286,129, + 171,126,316,58,0,316,58,0,132,131, + 0,0,129,0,286,129,171,316,58,0, + 131,0,0,129,0,191,130,285,58,0, + 137,0,195,191,130,285,253,0,138,0, + 191,130,285,253,0,195,173,130,12,0, + 173,130,12,0,173,130,0,93,138,0, + 284,0,194,0,193,0,192,0,191,0, + 278,129,148,0,278,129,177,0,168,87, + 0,311,167,313,314,3,84,0,128,173, + 0,313,314,3,84,0,130,0,128,173, + 0,168,3,78,198,83,0,128,130,0, + 198,83,0,108,2,133,128,130,0,233, + 3,78,0,193,174,0,33,171,0,174, + 0,177,33,171,0,233,3,88,0,198, + 155,233,3,86,0,62,173,0,233,3, + 86,0,128,173,62,173,0,312,129,171, + 0,168,0,221,80,0,30,173,0,168, + 109,163,0,30,171,0,189,3,0,128, + 151,0,226,3,0,221,67,275,0,168, + 67,0,189,3,308,69,130,0,128,0, + 0,0,0,308,69,130,0,2,147,128, + 0,0,0,0,189,3,49,0,149,0, + 128,43,173,130,0,31,149,0,93,138, + 31,149,0,227,191,130,0,148,31,149, + 0,189,3,53,0,168,3,53,0,168, + 3,73,189,61,45,0,189,61,45,0, + 20,2,133,128,0,168,3,73,189,61, + 48,0,189,61,48,0,168,3,73,189, + 61,50,0,189,61,50,0,168,3,73, + 189,61,46,0,189,61,46,0,226,3, + 128,195,173,130,12,0,128,195,173,130, + 12,0,138,2,0,128,0,226,3,127, + 268,173,130,12,0,268,173,130,12,0, + 137,2,0,128,0,226,3,138,0,226, + 3,142,0,168,67,142,0,270,0,31, + 0,31,141,0,172,0,136,0,168,3, + 0 + }; + }; + public final static char scopeRhs[] = ScopeRhs.scopeRhs; + public final int scopeRhs(int index) { return scopeRhs[index]; } + + public interface ScopeState { + public final static char scopeState[] = {0, + 1773,1143,0,2787,2774,2091,0,2487,2319,0, + 5160,5539,5536,4983,0,987,1600,873,971,0, + 2055,917,0,4050,4006,3962,3918,3874,3830,3786, + 3742,3698,3494,3450,5194,0,783,711,0,1786, + 0,3804,2792,3715,0,2406,758,0,4050,4006, + 1655,1563,3962,3918,3874,3830,3786,3742,1379,3698, + 3494,3450,3153,1304,0,3155,2565,0,5096,5075, + 0,2044,2465,0,1016,0,2368,1931,702,609, + 2722,5222,3574,3136,2464,2966,2917,0,2750,2938, + 2421,0,5494,5445,5440,5550,5530,5436,5413,5409, + 5516,5385,5507,5498,5354,2875,5231,4977,4449,2438, + 4150,4145,3664,3660,3010,0,2722,5131,4154,2982, + 3460,3574,2750,5062,3136,2966,4398,2938,4247,5049, + 2421,3277,3249,3205,2529,0,5131,3460,0,3149, + 3059,1691,5494,5445,2766,1645,1553,1461,2739,5440, + 3722,5550,5530,1415,5436,5413,5409,2639,5516,1370, + 5385,2832,1308,5507,5498,5354,2875,1262,5231,4977, + 981,2473,4449,667,2438,4150,4145,3664,3660,838, + 3010,4485,2800,2449,2329,2237,1354,858,3574,2750, + 5062,3277,3249,2722,1209,1001,3205,3136,783,711, + 2529,2966,4398,5131,2938,4154,4247,2982,5049,2421, + 3460,3638,4816,4794,2490,2598,2684,2649,3104,3072, + 2836,3675,3587,3427,3397,3341,3162,4462,4426,3371, + 4222,671,4772,4750,4728,4706,4684,4662,4640,4618, + 4583,4550,4521,2111,2381,2065,2341,2289,1421,1375, + 1314,2019,2249,2197,2157,1268,941,1973,1927,1881, + 1835,1789,1743,1697,1651,1605,1559,1513,573,1160, + 1222,1467,876,798,619,733,1066,1019,1113,0, + 4485,573,2800,0,2750,2935,3706,3277,3458,2883, + 3249,3205,3005,573,2711,4398,3271,2520,4840,4389, + 4882,2863,2938,2445,2417,4178,4072,4247,2517,966, + 823,4485,3756,2745,3710,2859,3201,3131,2804,2800, + 5364,5333,2722,5188,5145,5222,5310,5304,2529,5403, + 5298,4154,2982,5286,2421,0,5096,5075,4958,4288, + 4277,4266,4947,4860,4849,4838,4087,4050,4006,3962, + 3918,3874,3830,3786,3742,3698,3494,3450,0,5096, + 5075,4958,4288,4277,4266,4947,4860,4849,4838,4087, + 0 + }; + }; + public final static char scopeState[] = ScopeState.scopeState; + public final int scopeState(int index) { return scopeState[index]; } + + public interface InSymb { + public final static char inSymb[] = {0, + 0,307,64,66,129,177,211,43,30,62, + 234,62,288,3,279,5,6,280,262,281, + 253,282,58,283,284,127,12,130,290,129, + 3,4,135,134,8,7,127,130,184,43, + 61,41,171,235,126,130,130,41,3,3, + 171,321,285,166,316,285,166,61,130,191, + 173,172,77,129,278,193,187,184,129,257, + 289,219,166,130,188,193,61,61,174,67, + 3,68,69,127,126,191,173,3,61,73, + 129,171,129,171,75,191,191,155,3,334, + 1,335,129,173,239,128,127,130,126,171, + 130,129,173,43,4,129,291,74,166,67, + 219,166,130,3,75,70,193,173,9,129, + 129,129,67,67,195,129,129,129,232,129, + 130,235,131,332,304,3,320,130,175,231, + 62,43,64,177,323,128,127,240,166,240, + 191,171,129,191,263,174,53,45,48,50, + 46,12,138,3,130,49,44,7,38,37, + 9,11,40,39,142,147,153,149,156,154, + 158,157,160,159,162,63,163,266,195,270, + 195,291,171,300,130,301,221,163,173,161, + 129,171,261,166,166,188,129,263,263,219, + 236,237,148,238,302,43,12,42,232,232, + 191,70,155,3,1,173,129,240,240,129, + 129,195,129,286,126,287,129,3,224,223, + 3,61,61,61,61,130,3,189,168,129, + 68,69,173,3,128,108,122,3,67,92, + 94,38,37,96,95,9,98,97,73,61, + 90,91,11,100,99,102,101,103,119,118, + 117,116,115,114,113,112,111,110,75,109, + 104,70,4,292,129,70,191,3,277,129, + 171,9,194,155,75,230,193,3,129,70, + 70,73,61,239,239,235,333,195,322,74, + 244,193,127,242,166,129,129,74,286,75, + 70,219,230,129,3,189,168,189,189,189, + 189,173,226,155,138,128,127,12,130,67, + 308,3,189,43,130,43,226,168,149,149, + 147,147,147,154,154,154,154,153,153,157, + 156,156,159,158,160,168,162,129,312,82, + 80,1,168,10,88,86,84,83,78,85, + 87,81,79,62,77,226,70,129,129,129, + 75,75,129,219,129,75,75,70,131,70, + 74,75,166,242,166,150,325,231,25,130, + 236,129,73,73,73,73,195,268,130,173, + 212,3,309,174,161,130,191,173,74,293, + 121,10,74,221,74,3,3,3,198,3, + 126,168,126,190,319,228,302,242,166,70, + 130,25,326,191,155,236,3,3,3,3, + 128,127,173,43,189,129,129,227,7,43, + 3,74,233,174,233,314,148,78,233,129, + 197,70,129,73,191,130,130,129,155,168, + 168,168,168,3,3,195,155,272,275,67, + 192,4,126,128,93,330,174,155,193,155, + 313,129,3,155,293,197,10,63,42,191, + 191,228,129,226,226,128,129,3,67,168, + 4,155,155,129,75,198,167,278,168,3, + 239,129,228,272,226,221,124,311,155,331, + 75,129,155,70 + }; + }; + public final static char inSymb[] = InSymb.inSymb; + public final int inSymb(int index) { return inSymb[index]; } + + public interface Name { + public final static String name[] = { + "", + "[", + "(", + ".", + ".*", + "->", + "->*", + "++", + "--", + "&", + "*", + "+", + "-", + "~", + "!", + "/", + "%", + ">>", + "<<", + "<", + ">", + "<=", + ">=", + "==", + "!=", + "^", + "|", + "&&", + "||", + "?", + ":", + "::", + "...", + "=", + "*=", + "/=", + "%=", + "+=", + "-=", + ">>=", + "<<=", + "&=", + "^=", + "|=", + ",", + "$empty", + "asm", + "auto", + "bool", + "break", + "case", + "catch", + "char", + "class", + "const", + "const_cast", + "continue", + "default", + "delete", + "do", + "double", + "dynamic_cast", + "else", + "enum", + "explicit", + "export", + "extern", + "false", + "float", + "for", + "friend", + "goto", + "if", + "inline", + "int", + "long", + "mutable", + "namespace", + "new", + "operator", + "private", + "protected", + "public", + "register", + "reinterpret_cast", + "return", + "short", + "signed", + "sizeof", + "static", + "static_cast", + "struct", + "switch", + "template", + "this", + "throw", + "try", + "true", + "typedef", + "typeid", + "typename", + "union", + "unsigned", + "using", + "virtual", + "void", + "volatile", + "wchar_t", + "while", + "integer", + "floating", + "charconst", + "stringlit", + "identifier", + "Completion", + "EndOfCompletion", + "Invalid", + "RightBracket", + "RightParen", + "RightBrace", + "SemiColon", + "LeftBrace", + "__attribute__", + "__declspec", + "ERROR_TOKEN", + "0", + "EOF_TOKEN", + "]", + ")", + "}", + ";", + "{", + "identifier_token", + "expression", + "id_expression", + "qualified_or_unqualified_name", + "unqualified_id_name", + "identifier_name", + "template_id_name", + "nested_name_specifier", + "class_or_namespace_name", + "nested_name_specifier_with_tem" + + "plate", + "class_or_namespace_name_with_t" + + "emplate", + "class_name", + "postfix_expression", + "simple_type_specifier", + "pseudo_destructor_name", + "type_id", + "type_name", + "destructor_type_name", + "unary_expression", + "cast_expression", + "new_type_id", + "expression_list", + "type_specifier_seq", + "new_declarator", + "new_pointer_operators", + "ptr_operator", + "new_array_expressions", + "constant_expression", + "pm_expression", + "multiplicative_expression", + "additive_expression", + "shift_expression", + "relational_expression", + "equality_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", + "assignment_expression", + "expression_list_actual", + "statement", + "compound_statement", + "statement_seq", + "condition", + "declarator", + "for_init_statement", + "function_definition", + "declaration", + "declaration_seq", + "declaration_specifiers", + "simple_declaration_specifiers", + "class_declaration_specifiers", + "elaborated_declaration_specifi" + + "ers", + "enum_declaration_specifiers", + "type_name_declaration_specifie" + + "rs", + "no_type_declaration_specifier", + "cv_qualifier", + "no_type_declaration_specifiers", + "class_specifier", + "elaborated_type_specifier", + "enum_specifier", + "type_name_specifier", + "class_keyword", + "enumerator_list", + "enumerator_definition", + "namespace_name", + "init_declarator_list", + "init_declarator_complete", + "complete_declarator", + "initializer", + "direct_declarator", + "ptr_operator_seq", + "function_declarator", + "basic_direct_declarator", + "array_direct_declarator", + "array_modifier", + "abstract_declarator", + "direct_abstract_declarator", + "basic_direct_abstract_declarat" + + "or", + "array_direct_abstract_declarat" + + "or", + "parameter_declaration_list", + "parameter_declaration", + "parameter_init_declarator", + "parameter_initializer", + "function_body", + "handler_seq", + "initializer_clause", + "initializer_list", + "class_head", + "access_specifier_keyword", + "member_declaration", + "member_declarator_list", + "member_declaration_list", + "member_declarator_complete", + "constant_initializer", + "bit_field_declarator", + "base_specifier_list", + "base_specifier", + "conversion_function_id", + "conversion_type_id", + "conversion_declarator", + "mem_initializer_list", + "mem_initializer", + "mem_initializer_name", + "operator_id_name", + "overloadable_operator", + "template_parameter_list", + "template_parameter", + "template_argument_list", + "template_argument", + "handler", + "exception_declaration", + "type_id_list", + "attribute_or_decl_specifier", + "attribute_or_decl_specifier_se" + + "q", + "word", + "extended_decl_modifier_seq", + "extended_decl_modifier" + }; + }; + public final static String name[] = Name.name; + public final String name(int index) { return name[index]; } + + public final static int + ERROR_SYMBOL = 65, + SCOPE_UBOUND = 135, + SCOPE_SIZE = 136, + MAX_NAME_LENGTH = 37; + + public final int getErrorSymbol() { return ERROR_SYMBOL; } + public final int getScopeUbound() { return SCOPE_UBOUND; } + public final int getScopeSize() { return SCOPE_SIZE; } + public final int getMaxNameLength() { return MAX_NAME_LENGTH; } + + public final static int + NUM_STATES = 574, + NT_OFFSET = 125, + LA_STATE_OFFSET = 6700, + MAX_LA = 2147483647, + NUM_RULES = 572, + NUM_NONTERMINALS = 213, + NUM_SYMBOLS = 338, + SEGMENT_SIZE = 8192, + START_STATE = 4087, + IDENTIFIER_SYMBOL = 0, + EOFT_SYMBOL = 123, + EOLT_SYMBOL = 123, + ACCEPT_ACTION = 5662, + ERROR_ACTION = 6128; + + public final static boolean BACKTRACK = true; + + public final int getNumStates() { return NUM_STATES; } + public final int getNtOffset() { return NT_OFFSET; } + public final int getLaStateOffset() { return LA_STATE_OFFSET; } + public final int getMaxLa() { return MAX_LA; } + public final int getNumRules() { return NUM_RULES; } + public final int getNumNonterminals() { return NUM_NONTERMINALS; } + public final int getNumSymbols() { return NUM_SYMBOLS; } + public final int getSegmentSize() { return SEGMENT_SIZE; } + public final int getStartState() { return START_STATE; } + public final int getStartSymbol() { return lhs[0]; } + public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } + public final int getEoftSymbol() { return EOFT_SYMBOL; } + public final int getEoltSymbol() { return EOLT_SYMBOL; } + public final int getAcceptAction() { return ACCEPT_ACTION; } + public final int getErrorAction() { return ERROR_ACTION; } + public final boolean isValidForParser() { return isValidForParser; } + public final boolean getBacktrack() { return BACKTRACK; } + + public final int originalState(int state) { + return -baseCheck[state]; + } + public final int asi(int state) { + return asb[originalState(state)]; + } + public final int nasi(int state) { + return nasb[originalState(state)]; + } + public final int inSymbol(int state) { + return inSymb[originalState(state)]; + } + + public final int ntAction(int state, int sym) { + return baseAction[state + sym]; + } + + public final int tAction(int state, int sym) { + int i = baseAction[state], + k = i + sym; + return termAction[termCheck[k] == sym ? k : i]; + } + public final int lookAhead(int la_state, int sym) { + int k = la_state + sym; + return termAction[termCheck[k] == sym ? k : la_state]; + } +} |