This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch NLPCRAFT-206
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-206 by this push:
new 101897f WIP.
101897f is described below
commit 101897f487b34a280526230b8c2cf346f9f3f1d5
Author: Aaron Radzinzski <[email protected]>
AuthorDate: Mon Mar 15 23:45:07 2021 -0700
WIP.
---
.../model/intent/compiler/NCDslCompilerBase.scala | 8 +-
.../compiler/antlr4/NCIntentDslBaseListener.java | 2 +-
.../intent/compiler/antlr4/NCIntentDslLexer.interp | 2 +-
.../intent/compiler/antlr4/NCIntentDslLexer.java | 766 ++++++++++-----------
.../compiler/antlr4/NCIntentDslListener.java | 2 +-
.../intent/compiler/antlr4/NCIntentDslParser.java | 217 +-----
6 files changed, 386 insertions(+), 611 deletions(-)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerBase.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerBase.scala
index 0d5aa10..512c253 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerBase.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCDslCompilerBase.scala
@@ -757,7 +757,7 @@ trait NCDslCompilerBase {
case "aliases" ⇒ arg1Tok() match { case x ⇒ stack.push(() ⇒ {
Z(toToken(x().value).getAliases, true) }) }
case "start_idx" ⇒ arg1Tok() match { case x ⇒ stack.push(() ⇒ {
Z(toToken(x().value).getStartCharIndex, true) }) }
case "end_idx" ⇒ arg1Tok() match { case x ⇒ stack.push(() ⇒ {
Z(toToken(x().value).getEndCharIndex, true) }) }
- case "this" ⇒ delMarker(); stack.push(() ⇒ Z(tok, true))
+ case "this" ⇒ z0(() ⇒ Z(tok, true))
case "part" ⇒ doPart()
case "parts" ⇒ doParts()
@@ -838,9 +838,9 @@ trait NCDslCompilerBase {
case "log1p" ⇒ z[T](arg1, { x ⇒ val Z(v, f) = x();
Z(Math.log1p(toJDouble(v)), f) })
case "pow" ⇒ z[(T, T)](arg2, { x ⇒ val Z(v1, f1) = x._1(); val
Z(v2, f2) = x._2(); Z(Math.pow(toJDouble(v1), toJDouble(v2)), f1 || f2) })
case "square" ⇒ doSquare()
- case "pi" ⇒ delMarker(); stack.push(() ⇒ Z(Math.PI, false))
- case "euler" ⇒ delMarker(); stack.push(() ⇒ Z(Math.E, false))
- case "rand" ⇒ delMarker(); stack.push(() ⇒ Z(Math.random, false))
+ case "pi" ⇒ z0(() ⇒ Z(Math.PI, false))
+ case "euler" ⇒ z0(() ⇒ Z(Math.E, false))
+ case "rand" ⇒ z0(() ⇒ Z(Math.random, false))
// Collection functions.
case "list" ⇒ doList()
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslBaseListener.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslBaseListener.java
index 3f816cb..d8ef01c 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslBaseListener.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslBaseListener.java
@@ -1,4 +1,4 @@
-// Generated from C:/Users/Nikita
Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4\NCIntentDsl.g4
by ANTLR 4.9.1
+// Generated from
/Users/nivanov/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDsl.g4
by ANTLR 4.9.1
package org.apache.nlpcraft.model.intent.compiler.antlr4;
import org.antlr.v4.runtime.ParserRuleContext;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslLexer.interp
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslLexer.interp
index a6bdbee..218e2cb 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslLexer.interp
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslLexer.interp
@@ -169,4 +169,4 @@ mode names:
DEFAULT_MODE
atn:
-[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 53, 1210, 8, 1,
4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8,
9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4,
14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9,
19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4,
25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9,
30, 4, 31, 9, 31, 4, 32, 9, [...]
\ No newline at end of file
+[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 53, 1185, 8, 1,
4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8,
9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4,
14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9,
19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4,
25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9,
30, 4, 31, 9, 31, 4, 32, 9, [...]
\ No newline at end of file
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslLexer.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslLexer.java
index 8e11a6b..75464e4 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslLexer.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslLexer.java
@@ -1,4 +1,4 @@
-// Generated from C:/Users/Nikita
Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4\NCIntentDsl.g4
by ANTLR 4.9.1
+// Generated from
/Users/nivanov/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDsl.g4
by ANTLR 4.9.1
package org.apache.nlpcraft.model.intent.compiler.antlr4;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
@@ -124,7 +124,7 @@ public class NCIntentDslLexer extends Lexer {
public ATN getATN() { return _ATN; }
public static final String _serializedATN =
-
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\65\u04ba\b\1\4\2"+
+
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\65\u04a1\b\1\4\2"+
"\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4"+
"\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22"+
"\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31"+
@@ -181,392 +181,382 @@ public class NCIntentDslLexer extends Lexer {
"\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
"\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
"\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3"+
-
"\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b"+
-
"\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\5\b\u03ef\n\b\3\t\3\t\3\t"+
-
"\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\7\n\u03fe\n\n\f\n\16\n\u0401"+
-
"\13\n\3\n\3\n\3\13\3\13\3\13\3\13\7\13\u0409\n\13\f\13\16\13\u040c\13"+
-
"\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u0419\n\f\3\r\3"+
-
"\r\3\r\3\r\3\r\3\16\3\16\3\16\3\17\3\17\3\17\3\20\3\20\3\20\3\21\3\21"+
-
"\3\21\3\22\3\22\3\23\3\23\3\24\3\24\3\24\3\25\3\25\3\25\3\26\3\26\3\27"+
-
"\3\27\3\30\3\30\3\31\3\31\3\32\3\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36"+
- "\3\36\3\37\3\37\3 \3
\3!\3!\3\"\3\"\3#\3#\3$\3$\3%\3%\3&\3&\3\'\3\'\3"+
-
"(\3(\3)\3)\3*\3*\3+\3+\3,\3,\3-\3-\3.\3.\3.\7.\u0469\n.\f.\16.\u046c\13"+
-
".\5.\u046e\n.\3/\3/\6/\u0472\n/\r/\16/\u0473\3\60\3\60\5\60\u0478\n\60"+
-
"\3\60\3\60\3\61\3\61\3\62\3\62\3\63\3\63\3\63\3\63\6\63\u0484\n\63\r\63"+
-
"\16\63\u0485\3\63\3\63\3\63\3\63\3\63\3\63\3\63\7\63\u048f\n\63\f\63\16"+
-
"\63\u0492\13\63\3\64\3\64\3\64\3\64\7\64\u0498\n\64\f\64\16\64\u049b\13"+
-
"\64\3\64\5\64\u049e\n\64\3\64\5\64\u04a1\n\64\3\64\3\64\3\64\3\64\7\64"+
-
"\u04a7\n\64\f\64\16\64\u04aa\13\64\3\64\3\64\5\64\u04ae\n\64\3\64\3\64"+
-
"\3\65\6\65\u04b3\n\65\r\65\16\65\u04b4\3\65\3\65\3\66\3\66\3\u04a8\2\67"+
-
"\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20"+
-
"\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36;\37"+
- "=
?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\2c\2e\62g\63i\64k\65\3\2\16"+
-
"\3\2))\3\2$$\3\2\63;\4\2\62;aa\3\2\62;\4\2GGgg\4\2--//\17\2\u00a2\u0251"+
-
"\u025b\u0294\u02b2\u0371\u0402\u0501\u1e04\u1ef5\u1f03\u2001\u200e\u200f"+
-
"\u2041\u2042\u2072\u2191\u2c02\u2ff1\u3003\ud801\uf902\ufdd1\ufdf2\uffff"+
-
"\4\2C\\c|\4\2\f\f\17\17\3\3\f\f\5\2\13\f\16\17\"\"\2\u0550\2\3\3\2\2\2"+
-
"\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2"+
-
"\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2"+
-
"\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2"+
-
"\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2"+
-
"\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2"+
-
"\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2"+
-
"\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W"+
-
"\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2e\3\2\2\2\2g\3\2"+
-
"\2\2\2i\3\2\2\2\2k\3\2\2\2\3m\3\2\2\2\5t\3\2\2\2\7{\3\2\2\2\t\u0083\3"+
-
"\2\2\2\13\u0088\3\2\2\2\r\u008d\3\2\2\2\17\u03ee\3\2\2\2\21\u03f0\3\2"+
-
"\2\2\23\u03f9\3\2\2\2\25\u0404\3\2\2\2\27\u0418\3\2\2\2\31\u041a\3\2\2"+
-
"\2\33\u041f\3\2\2\2\35\u0422\3\2\2\2\37\u0425\3\2\2\2!\u0428\3\2\2\2#"+
-
"\u042b\3\2\2\2%\u042d\3\2\2\2\'\u042f\3\2\2\2)\u0432\3\2\2\2+\u0435\3"+
-
"\2\2\2-\u0437\3\2\2\2/\u0439\3\2\2\2\61\u043b\3\2\2\2\63\u043d\3\2\2\2"+
-
"\65\u043f\3\2\2\2\67\u0441\3\2\2\29\u0443\3\2\2\2;\u0445\3\2\2\2=\u0447"+
-
"\3\2\2\2?\u0449\3\2\2\2A\u044b\3\2\2\2C\u044d\3\2\2\2E\u044f\3\2\2\2G"+
-
"\u0451\3\2\2\2I\u0453\3\2\2\2K\u0455\3\2\2\2M\u0457\3\2\2\2O\u0459\3\2"+
-
"\2\2Q\u045b\3\2\2\2S\u045d\3\2\2\2U\u045f\3\2\2\2W\u0461\3\2\2\2Y\u0463"+
-
"\3\2\2\2[\u046d\3\2\2\2]\u046f\3\2\2\2_\u0475\3\2\2\2a\u047b\3\2\2\2c"+
-
"\u047d\3\2\2\2e\u0483\3\2\2\2g\u04ad\3\2\2\2i\u04b2\3\2\2\2k\u04b8\3\2"+
-
"\2\2mn\7k\2\2no\7o\2\2op\7r\2\2pq\7q\2\2qr\7t\2\2rs\7v\2\2s\4\3\2\2\2"+
-
"tu\7k\2\2uv\7p\2\2vw\7v\2\2wx\7g\2\2xy\7p\2\2yz\7v\2\2z\6\3\2\2\2{|\7"+
-
"q\2\2|}\7t\2\2}~\7f\2\2~\177\7g\2\2\177\u0080\7t\2\2\u0080\u0081\7g\2"+
-
"\2\u0081\u0082\7f\2\2\u0082\b\3\2\2\2\u0083\u0084\7h\2\2\u0084\u0085\7"+
-
"n\2\2\u0085\u0086\7q\2\2\u0086\u0087\7y\2\2\u0087\n\3\2\2\2\u0088\u0089"+
-
"\7o\2\2\u0089\u008a\7g\2\2\u008a\u008b\7v\2\2\u008b\u008c\7c\2\2\u008c"+
-
"\f\3\2\2\2\u008d\u008e\7v\2\2\u008e\u008f\7g\2\2\u008f\u0090\7t\2\2\u0090"+
-
"\u0091\7o\2\2\u0091\16\3\2\2\2\u0092\u0093\7o\2\2\u0093\u0094\7g\2\2\u0094"+
-
"\u0095\7v\2\2\u0095\u0096\7c\2\2\u0096\u0097\7a\2\2\u0097\u0098\7v\2\2"+
-
"\u0098\u0099\7q\2\2\u0099\u009a\7m\2\2\u009a\u009b\7g\2\2\u009b\u03ef"+
-
"\7p\2\2\u009c\u009d\7o\2\2\u009d\u009e\7g\2\2\u009e\u009f\7v\2\2\u009f"+
-
"\u00a0\7c\2\2\u00a0\u00a1\7a\2\2\u00a1\u00a2\7r\2\2\u00a2\u00a3\7c\2\2"+
-
"\u00a3\u00a4\7t\2\2\u00a4\u03ef\7v\2\2\u00a5\u00a6\7o\2\2\u00a6\u00a7"+
-
"\7g\2\2\u00a7\u00a8\7v\2\2\u00a8\u00a9\7c\2\2\u00a9\u00aa\7a\2\2\u00aa"+
-
"\u00ab\7o\2\2\u00ab\u00ac\7q\2\2\u00ac\u00ad\7f\2\2\u00ad\u00ae\7g\2\2"+
-
"\u00ae\u03ef\7n\2\2\u00af\u00b0\7o\2\2\u00b0\u00b1\7g\2\2\u00b1\u00b2"+
-
"\7v\2\2\u00b2\u00b3\7c\2\2\u00b3\u00b4\7a\2\2\u00b4\u00b5\7k\2\2\u00b5"+
-
"\u00b6\7p\2\2\u00b6\u00b7\7v\2\2\u00b7\u00b8\7g\2\2\u00b8\u00b9\7p\2\2"+
-
"\u00b9\u03ef\7v\2\2\u00ba\u00bb\7o\2\2\u00bb\u00bc\7g\2\2\u00bc\u00bd"+
-
"\7v\2\2\u00bd\u00be\7c\2\2\u00be\u00bf\7a\2\2\u00bf\u00c0\7t\2\2\u00c0"+
-
"\u00c1\7g\2\2\u00c1\u03ef\7s\2\2\u00c2\u00c3\7o\2\2\u00c3\u00c4\7g\2\2"+
-
"\u00c4\u00c5\7v\2\2\u00c5\u00c6\7c\2\2\u00c6\u00c7\7a\2\2\u00c7\u00c8"+
-
"\7w\2\2\u00c8\u00c9\7u\2\2\u00c9\u00ca\7g\2\2\u00ca\u03ef\7t\2\2\u00cb"+
-
"\u00cc\7o\2\2\u00cc\u00cd\7g\2\2\u00cd\u00ce\7v\2\2\u00ce\u00cf\7c\2\2"+
-
"\u00cf\u00d0\7a\2\2\u00d0\u00d1\7e\2\2\u00d1\u00d2\7q\2\2\u00d2\u00d3"+
-
"\7o\2\2\u00d3\u00d4\7r\2\2\u00d4\u00d5\7c\2\2\u00d5\u00d6\7p\2\2\u00d6"+
-
"\u03ef\7{\2\2\u00d7\u00d8\7o\2\2\u00d8\u00d9\7g\2\2\u00d9\u00da\7v\2\2"+
-
"\u00da\u00db\7c\2\2\u00db\u00dc\7a\2\2\u00dc\u00dd\7u\2\2\u00dd\u00de"+
-
"\7{\2\2\u00de\u03ef\7u\2\2\u00df\u00e0\7o\2\2\u00e0\u00e1\7g\2\2\u00e1"+
-
"\u00e2\7v\2\2\u00e2\u00e3\7c\2\2\u00e3\u00e4\7a\2\2\u00e4\u00e5\7e\2\2"+
-
"\u00e5\u00e6\7q\2\2\u00e6\u00e7\7p\2\2\u00e7\u03ef\7x\2\2\u00e8\u00e9"+
-
"\7o\2\2\u00e9\u00ea\7g\2\2\u00ea\u00eb\7v\2\2\u00eb\u00ec\7c\2\2\u00ec"+
-
"\u00ed\7a\2\2\u00ed\u00ee\7h\2\2\u00ee\u00ef\7t\2\2\u00ef\u00f0\7c\2\2"+
-
"\u00f0\u03ef\7i\2\2\u00f1\u00f2\7l\2\2\u00f2\u00f3\7u\2\2\u00f3\u00f4"+
-
"\7q\2\2\u00f4\u03ef\7p\2\2\u00f5\u00f6\7k\2\2\u00f6\u03ef\7h\2\2\u00f7"+
-
"\u00f8\7k\2\2\u00f8\u03ef\7f\2\2\u00f9\u00fa\7v\2\2\u00fa\u00fb\7j\2\2"+
-
"\u00fb\u00fc\7k\2\2\u00fc\u03ef\7u\2\2\u00fd\u00fe\7r\2\2\u00fe\u00ff"+
-
"\7c\2\2\u00ff\u0100\7t\2\2\u0100\u03ef\7v\2\2\u0101\u0102\7r\2\2\u0102"+
-
"\u0103\7c\2\2\u0103\u0104\7t\2\2\u0104\u0105\7v\2\2\u0105\u03ef\7u\2\2"+
-
"\u0106\u0107\7c\2\2\u0107\u0108\7p\2\2\u0108\u0109\7e\2\2\u0109\u010a"+
-
"\7g\2\2\u010a\u010b\7u\2\2\u010b\u010c\7v\2\2\u010c\u010d\7q\2\2\u010d"+
-
"\u010e\7t\2\2\u010e\u03ef\7u\2\2\u010f\u0110\7r\2\2\u0110\u0111\7c\2\2"+
-
"\u0111\u0112\7t\2\2\u0112\u0113\7g\2\2\u0113\u0114\7p\2\2\u0114\u03ef"+
-
"\7v\2\2\u0115\u0116\7i\2\2\u0116\u0117\7t\2\2\u0117\u0118\7q\2\2\u0118"+
-
"\u0119\7w\2\2\u0119\u011a\7r\2\2\u011a\u03ef\7u\2\2\u011b\u011c\7x\2\2"+
-
"\u011c\u011d\7c\2\2\u011d\u011e\7n\2\2\u011e\u011f\7w\2\2\u011f\u03ef"+
-
"\7g\2\2\u0120\u0121\7c\2\2\u0121\u0122\7n\2\2\u0122\u0123\7k\2\2\u0123"+
-
"\u0124\7c\2\2\u0124\u0125\7u\2\2\u0125\u0126\7g\2\2\u0126\u03ef\7u\2\2"+
-
"\u0127\u0128\7u\2\2\u0128\u0129\7v\2\2\u0129\u012a\7c\2\2\u012a\u012b"+
-
"\7t\2\2\u012b\u012c\7v\2\2\u012c\u012d\7a\2\2\u012d\u012e\7k\2\2\u012e"+
-
"\u012f\7f\2\2\u012f\u03ef\7z\2\2\u0130\u0131\7g\2\2\u0131\u0132\7p\2\2"+
-
"\u0132\u0133\7f\2\2\u0133\u0134\7a\2\2\u0134\u0135\7k\2\2\u0135\u0136"+
-
"\7f\2\2\u0136\u03ef\7z\2\2\u0137\u0138\7t\2\2\u0138\u0139\7g\2\2\u0139"+
-
"\u013a\7s\2\2\u013a\u013b\7a\2\2\u013b\u013c\7k\2\2\u013c\u03ef\7f\2\2"+
-
"\u013d\u013e\7t\2\2\u013e\u013f\7g\2\2\u013f\u0140\7s\2\2\u0140\u0141"+
-
"\7a\2\2\u0141\u0142\7p\2\2\u0142\u0143\7q\2\2\u0143\u0144\7t\2\2\u0144"+
-
"\u0145\7o\2\2\u0145\u0146\7v\2\2\u0146\u0147\7g\2\2\u0147\u0148\7z\2\2"+
-
"\u0148\u03ef\7v\2\2\u0149\u014a\7t\2\2\u014a\u014b\7g\2\2\u014b\u014c"+
-
"\7s\2\2\u014c\u014d\7a\2\2\u014d\u014e\7v\2\2\u014e\u014f\7u\2\2\u014f"+
-
"\u0150\7v\2\2\u0150\u0151\7c\2\2\u0151\u0152\7o\2\2\u0152\u03ef\7r\2\2"+
-
"\u0153\u0154\7t\2\2\u0154\u0155\7g\2\2\u0155\u0156\7s\2\2\u0156\u0157"+
-
"\7a\2\2\u0157\u0158\7c\2\2\u0158\u0159\7f\2\2\u0159\u015a\7f\2\2\u015a"+
-
"\u03ef\7t\2\2\u015b\u015c\7t\2\2\u015c\u015d\7g\2\2\u015d\u015e\7s\2\2"+
-
"\u015e\u015f\7a\2\2\u015f\u0160\7c\2\2\u0160\u0161\7i\2\2\u0161\u0162"+
-
"\7g\2\2\u0162\u0163\7p\2\2\u0163\u03ef\7v\2\2\u0164\u0165\7w\2\2\u0165"+
-
"\u0166\7u\2\2\u0166\u0167\7g\2\2\u0167\u0168\7t\2\2\u0168\u0169\7a\2\2"+
-
"\u0169\u016a\7k\2\2\u016a\u03ef\7f\2\2\u016b\u016c\7w\2\2\u016c\u016d"+
-
"\7u\2\2\u016d\u016e\7g\2\2\u016e\u016f\7t\2\2\u016f\u0170\7a\2\2\u0170"+
-
"\u0171\7h\2\2\u0171\u0172\7p\2\2\u0172\u0173\7c\2\2\u0173\u0174\7o\2\2"+
-
"\u0174\u03ef\7g\2\2\u0175\u0176\7w\2\2\u0176\u0177\7u\2\2\u0177\u0178"+
-
"\7g\2\2\u0178\u0179\7t\2\2\u0179\u017a\7a\2\2\u017a\u017b\7n\2\2\u017b"+
-
"\u017c\7p\2\2\u017c\u017d\7c\2\2\u017d\u017e\7o\2\2\u017e\u03ef\7g\2\2"+
-
"\u017f\u0180\7w\2\2\u0180\u0181\7u\2\2\u0181\u0182\7g\2\2\u0182\u0183"+
-
"\7t\2\2\u0183\u0184\7a\2\2\u0184\u0185\7g\2\2\u0185\u0186\7o\2\2\u0186"+
-
"\u0187\7c\2\2\u0187\u0188\7k\2\2\u0188\u03ef\7n\2\2\u0189\u018a\7w\2\2"+
-
"\u018a\u018b\7u\2\2\u018b\u018c\7g\2\2\u018c\u018d\7t\2\2\u018d\u018e"+
-
"\7a\2\2\u018e\u018f\7c\2\2\u018f\u0190\7f\2\2\u0190\u0191\7o\2\2\u0191"+
-
"\u0192\7k\2\2\u0192\u03ef\7p\2\2\u0193\u0194\7w\2\2\u0194\u0195\7u\2\2"+
-
"\u0195\u0196\7g\2\2\u0196\u0197\7t\2\2\u0197\u0198\7a\2\2\u0198\u0199"+
-
"\7u\2\2\u0199\u019a\7k\2\2\u019a\u019b\7i\2\2\u019b\u019c\7p\2\2\u019c"+
-
"\u019d\7w\2\2\u019d\u019e\7r\2\2\u019e\u019f\7a\2\2\u019f\u01a0\7v\2\2"+
-
"\u01a0\u01a1\7u\2\2\u01a1\u01a2\7v\2\2\u01a2\u01a3\7c\2\2\u01a3\u01a4"+
-
"\7o\2\2\u01a4\u03ef\7r\2\2\u01a5\u01a6\7e\2\2\u01a6\u01a7\7q\2\2\u01a7"+
-
"\u01a8\7o\2\2\u01a8\u01a9\7r\2\2\u01a9\u01aa\7a\2\2\u01aa\u01ab\7k\2\2"+
-
"\u01ab\u03ef\7f\2\2\u01ac\u01ad\7e\2\2\u01ad\u01ae\7q\2\2\u01ae\u01af"+
-
"\7o\2\2\u01af\u01b0\7r\2\2\u01b0\u01b1\7a\2\2\u01b1\u01b2\7p\2\2\u01b2"+
-
"\u01b3\7c\2\2\u01b3\u01b4\7o\2\2\u01b4\u03ef\7g\2\2\u01b5\u01b6\7e\2\2"+
-
"\u01b6\u01b7\7q\2\2\u01b7\u01b8\7o\2\2\u01b8\u01b9\7r\2\2\u01b9\u01ba"+
-
"\7a\2\2\u01ba\u01bb\7y\2\2\u01bb\u01bc\7g\2\2\u01bc\u01bd\7d\2\2\u01bd"+
-
"\u01be\7u\2\2\u01be\u01bf\7k\2\2\u01bf\u01c0\7v\2\2\u01c0\u03ef\7g\2\2"+
-
"\u01c1\u01c2\7e\2\2\u01c2\u01c3\7q\2\2\u01c3\u01c4\7o\2\2\u01c4\u01c5"+
-
"\7r\2\2\u01c5\u01c6\7a\2\2\u01c6\u01c7\7e\2\2\u01c7\u01c8\7q\2\2\u01c8"+
-
"\u01c9\7w\2\2\u01c9\u01ca\7p\2\2\u01ca\u01cb\7v\2\2\u01cb\u01cc\7t\2\2"+
-
"\u01cc\u03ef\7{\2\2\u01cd\u01ce\7e\2\2\u01ce\u01cf\7q\2\2\u01cf\u01d0"+
-
"\7o\2\2\u01d0\u01d1\7r\2\2\u01d1\u01d2\7a\2\2\u01d2\u01d3\7t\2\2\u01d3"+
-
"\u01d4\7g\2\2\u01d4\u01d5\7i\2\2\u01d5\u01d6\7k\2\2\u01d6\u01d7\7q\2\2"+
-
"\u01d7\u03ef\7p\2\2\u01d8\u01d9\7e\2\2\u01d9\u01da\7q\2\2\u01da\u01db"+
-
"\7o\2\2\u01db\u01dc\7r\2\2\u01dc\u01dd\7a\2\2\u01dd\u01de\7e\2\2\u01de"+
-
"\u01df\7k\2\2\u01df\u01e0\7v\2\2\u01e0\u03ef\7{\2\2\u01e1\u01e2\7e\2\2"+
-
"\u01e2\u01e3\7q\2\2\u01e3\u01e4\7o\2\2\u01e4\u01e5\7r\2\2\u01e5\u01e6"+
-
"\7a\2\2\u01e6\u01e7\7c\2\2\u01e7\u01e8\7f\2\2\u01e8\u01e9\7f\2\2\u01e9"+
-
"\u03ef\7t\2\2\u01ea\u01eb\7e\2\2\u01eb\u01ec\7q\2\2\u01ec\u01ed\7o\2\2"+
-
"\u01ed\u01ee\7r\2\2\u01ee\u01ef\7a\2\2\u01ef\u01f0\7r\2\2\u01f0\u01f1"+
-
"\7q\2\2\u01f1\u01f2\7u\2\2\u01f2\u01f3\7v\2\2\u01f3\u01f4\7e\2\2\u01f4"+
-
"\u01f5\7q\2\2\u01f5\u01f6\7f\2\2\u01f6\u03ef\7g\2\2\u01f7\u01f8\7v\2\2"+
-
"\u01f8\u01f9\7t\2\2\u01f9\u01fa\7k\2\2\u01fa\u03ef\7o\2\2\u01fb\u01fc"+
-
"\7u\2\2\u01fc\u01fd\7v\2\2\u01fd\u01fe\7t\2\2\u01fe\u01ff\7k\2\2\u01ff"+
-
"\u03ef\7r\2\2\u0200\u0201\7w\2\2\u0201\u0202\7r\2\2\u0202\u0203\7r\2\2"+
-
"\u0203\u0204\7g\2\2\u0204\u0205\7t\2\2\u0205\u0206\7e\2\2\u0206\u0207"+
-
"\7c\2\2\u0207\u0208\7u\2\2\u0208\u03ef\7g\2\2\u0209\u020a\7n\2\2\u020a"+
-
"\u020b\7q\2\2\u020b\u020c\7y\2\2\u020c\u020d\7g\2\2\u020d\u020e\7t\2\2"+
-
"\u020e\u020f\7e\2\2\u020f\u0210\7c\2\2\u0210\u0211\7u\2\2\u0211\u03ef"+
-
"\7g\2\2\u0212\u0213\7k\2\2\u0213\u0214\7u\2\2\u0214\u0215\7a\2\2\u0215"+
-
"\u0216\7c\2\2\u0216\u0217\7n\2\2\u0217\u0218\7r\2\2\u0218\u0219\7j\2\2"+
-
"\u0219\u03ef\7c\2\2\u021a\u021b\7k\2\2\u021b\u021c\7u\2\2\u021c\u021d"+
-
"\7a\2\2\u021d\u021e\7c\2\2\u021e\u021f\7n\2\2\u021f\u0220\7r\2\2\u0220"+
-
"\u0221\7j\2\2\u0221\u0222\7c\2\2\u0222\u0223\7p\2\2\u0223\u0224\7w\2\2"+
-
"\u0224\u03ef\7o\2\2\u0225\u0226\7k\2\2\u0226\u0227\7u\2\2\u0227\u0228"+
-
"\7a\2\2\u0228\u0229\7y\2\2\u0229\u022a\7j\2\2\u022a\u022b\7k\2\2\u022b"+
-
"\u022c\7v\2\2\u022c\u022d\7g\2\2\u022d\u022e\7u\2\2\u022e\u022f\7r\2\2"+
-
"\u022f\u0230\7c\2\2\u0230\u0231\7e\2\2\u0231\u03ef\7g\2\2\u0232\u0233"+
-
"\7k\2\2\u0233\u0234\7u\2\2\u0234\u0235\7a\2\2\u0235\u0236\7p\2\2\u0236"+
-
"\u0237\7w\2\2\u0237\u03ef\7o\2\2\u0238\u0239\7k\2\2\u0239\u023a\7u\2\2"+
-
"\u023a\u023b\7a\2\2\u023b\u023c\7p\2\2\u023c\u023d\7w\2\2\u023d\u023e"+
-
"\7o\2\2\u023e\u023f\7u\2\2\u023f\u0240\7r\2\2\u0240\u0241\7c\2\2\u0241"+
-
"\u0242\7e\2\2\u0242\u03ef\7g\2\2\u0243\u0244\7k\2\2\u0244\u0245\7u\2\2"+
-
"\u0245\u0246\7a\2\2\u0246\u0247\7c\2\2\u0247\u0248\7n\2\2\u0248\u0249"+
-
"\7r\2\2\u0249\u024a\7j\2\2\u024a\u024b\7c\2\2\u024b\u024c\7u\2\2\u024c"+
-
"\u024d\7r\2\2\u024d\u024e\7c\2\2\u024e\u024f\7e\2\2\u024f\u03ef\7g\2\2"+
-
"\u0250\u0251\7k\2\2\u0251\u0252\7u\2\2\u0252\u0253\7a\2\2\u0253\u0254"+
-
"\7c\2\2\u0254\u0255\7n\2\2\u0255\u0256\7r\2\2\u0256\u0257\7j\2\2\u0257"+
-
"\u0258\7c\2\2\u0258\u0259\7p\2\2\u0259\u025a\7w\2\2\u025a\u025b\7o\2\2"+
-
"\u025b\u025c\7u\2\2\u025c\u025d\7r\2\2\u025d\u025e\7c\2\2\u025e\u025f"+
-
"\7e\2\2\u025f\u03ef\7g\2\2\u0260\u0261\7u\2\2\u0261\u0262\7w\2\2\u0262"+
-
"\u0263\7d\2\2\u0263\u0264\7u\2\2\u0264\u0265\7v\2\2\u0265\u0266\7t\2\2"+
-
"\u0266\u0267\7k\2\2\u0267\u0268\7p\2\2\u0268\u03ef\7i\2\2\u0269\u026a"+
-
"\7e\2\2\u026a\u026b\7j\2\2\u026b\u026c\7c\2\2\u026c\u026d\7t\2\2\u026d"+
-
"\u026e\7C\2\2\u026e\u03ef\7v\2\2\u026f\u0270\7t\2\2\u0270\u0271\7g\2\2"+
-
"\u0271\u0272\7i\2\2\u0272\u0273\7g\2\2\u0273\u03ef\7z\2\2\u0274\u0275"+
-
"\7u\2\2\u0275\u0276\7q\2\2\u0276\u0277\7w\2\2\u0277\u0278\7p\2\2\u0278"+
-
"\u0279\7f\2\2\u0279\u027a\7g\2\2\u027a\u03ef\7z\2\2\u027b\u027c\7u\2\2"+
-
"\u027c\u027d\7r\2\2\u027d\u027e\7n\2\2\u027e\u027f\7k\2\2\u027f\u03ef"+
-
"\7v\2\2\u0280\u0281\7u\2\2\u0281\u0282\7r\2\2\u0282\u0283\7n\2\2\u0283"+
-
"\u0284\7k\2\2\u0284\u0285\7v\2\2\u0285\u0286\7a\2\2\u0286\u0287\7v\2\2"+
-
"\u0287\u0288\7t\2\2\u0288\u0289\7k\2\2\u0289\u03ef\7o\2\2\u028a\u028b"+
-
"\7t\2\2\u028b\u028c\7g\2\2\u028c\u028d\7r\2\2\u028d\u028e\7n\2\2\u028e"+
-
"\u028f\7c\2\2\u028f\u0290\7e\2\2\u0290\u03ef\7g\2\2\u0291\u0292\7c\2\2"+
-
"\u0292\u0293\7d\2\2\u0293\u03ef\7u\2\2\u0294\u0295\7e\2\2\u0295\u0296"+
-
"\7g\2\2\u0296\u0297\7k\2\2\u0297\u03ef\7n\2\2\u0298\u0299\7h\2\2\u0299"+
-
"\u029a\7n\2\2\u029a\u029b\7q\2\2\u029b\u029c\7q\2\2\u029c\u03ef\7t\2\2"+
-
"\u029d\u029e\7t\2\2\u029e\u029f\7k\2\2\u029f\u02a0\7p\2\2\u02a0\u03ef"+
-
"\7v\2\2\u02a1\u02a2\7t\2\2\u02a2\u02a3\7q\2\2\u02a3\u02a4\7w\2\2\u02a4"+
-
"\u02a5\7p\2\2\u02a5\u03ef\7f\2\2\u02a6\u02a7\7u\2\2\u02a7\u02a8\7k\2\2"+
-
"\u02a8\u02a9\7i\2\2\u02a9\u02aa\7p\2\2\u02aa\u02ab\7w\2\2\u02ab\u03ef"+
-
"\7o\2\2\u02ac\u02ad\7u\2\2\u02ad\u02ae\7s\2\2\u02ae\u02af\7t\2\2\u02af"+
-
"\u03ef\7v\2\2\u02b0\u02b1\7e\2\2\u02b1\u02b2\7d\2\2\u02b2\u02b3\7t\2\2"+
-
"\u02b3\u03ef\7v\2\2\u02b4\u02b5\7r\2\2\u02b5\u03ef\7k\2\2\u02b6\u02b7"+
-
"\7g\2\2\u02b7\u02b8\7w\2\2\u02b8\u02b9\7n\2\2\u02b9\u02ba\7g\2\2\u02ba"+
-
"\u03ef\7t\2\2\u02bb\u02bc\7c\2\2\u02bc\u02bd\7e\2\2\u02bd\u02be\7q\2\2"+
-
"\u02be\u03ef\7u\2\2\u02bf\u02c0\7c\2\2\u02c0\u02c1\7u\2\2\u02c1\u02c2"+
-
"\7k\2\2\u02c2\u03ef\7p\2\2\u02c3\u02c4\7c\2\2\u02c4\u02c5\7v\2\2\u02c5"+
-
"\u02c6\7c\2\2\u02c6\u03ef\7p\2\2\u02c7\u02c8\7e\2\2\u02c8\u02c9\7q\2\2"+
-
"\u02c9\u03ef\7u\2\2\u02ca\u02cb\7u\2\2\u02cb\u02cc\7k\2\2\u02cc\u03ef"+
-
"\7p\2\2\u02cd\u02ce\7v\2\2\u02ce\u02cf\7c\2\2\u02cf\u03ef\7p\2\2\u02d0"+
-
"\u02d1\7e\2\2\u02d1\u02d2\7q\2\2\u02d2\u02d3\7u\2\2\u02d3\u03ef\7j\2\2"+
-
"\u02d4\u02d5\7u\2\2\u02d5\u02d6\7k\2\2\u02d6\u02d7\7p\2\2\u02d7\u03ef"+
-
"\7j\2\2\u02d8\u02d9\7v\2\2\u02d9\u02da\7c\2\2\u02da\u02db\7p\2\2\u02db"+
-
"\u03ef\7j\2\2\u02dc\u02dd\7c\2\2\u02dd\u02de\7v\2\2\u02de\u02df\7p\2\2"+
-
"\u02df\u03ef\7\64\2\2\u02e0\u02e1\7f\2\2\u02e1\u02e2\7g\2\2\u02e2\u02e3"+
-
"\7i\2\2\u02e3\u02e4\7t\2\2\u02e4\u02e5\7g\2\2\u02e5\u02e6\7g\2\2\u02e6"+
-
"\u03ef\7u\2\2\u02e7\u02e8\7t\2\2\u02e8\u02e9\7c\2\2\u02e9\u02ea\7f\2\2"+
-
"\u02ea\u02eb\7k\2\2\u02eb\u02ec\7c\2\2\u02ec\u02ed\7p\2\2\u02ed\u03ef"+
-
"\7u\2\2\u02ee\u02ef\7g\2\2\u02ef\u02f0\7z\2\2\u02f0\u03ef\7r\2\2\u02f1"+
-
"\u02f2\7g\2\2\u02f2\u02f3\7z\2\2\u02f3\u02f4\7r\2\2\u02f4\u02f5\7o\2\2"+
-
"\u02f5\u03ef\7\63\2\2\u02f6\u02f7\7j\2\2\u02f7\u02f8\7{\2\2\u02f8\u02f9"+
-
"\7r\2\2\u02f9\u02fa\7q\2\2\u02fa\u03ef\7v\2\2\u02fb\u02fc\7n\2\2\u02fc"+
-
"\u02fd\7q\2\2\u02fd\u03ef\7i\2\2\u02fe\u02ff\7n\2\2\u02ff\u0300\7q\2\2"+
-
"\u0300\u0301\7i\2\2\u0301\u0302\7\63\2\2\u0302\u03ef\7\62\2\2\u0303\u0304"+
-
"\7n\2\2\u0304\u0305\7q\2\2\u0305\u0306\7i\2\2\u0306\u0307\7\63\2\2\u0307"+
-
"\u03ef\7r\2\2\u0308\u0309\7r\2\2\u0309\u030a\7q\2\2\u030a\u03ef\7y\2\2"+
-
"\u030b\u030c\7t\2\2\u030c\u030d\7c\2\2\u030d\u030e\7p\2\2\u030e\u03ef"+
-
"\7f\2\2\u030f\u0310\7u\2\2\u0310\u0311\7s\2\2\u0311\u0312\7w\2\2\u0312"+
-
"\u0313\7c\2\2\u0313\u0314\7t\2\2\u0314\u03ef\7g\2\2\u0315\u0316\7n\2\2"+
-
"\u0316\u0317\7k\2\2\u0317\u0318\7u\2\2\u0318\u03ef\7v\2\2\u0319\u031a"+
-
"\7o\2\2\u031a\u031b\7c\2\2\u031b\u03ef\7r\2\2\u031c\u031d\7i\2\2\u031d"+
-
"\u031e\7g\2\2\u031e\u03ef\7v\2\2\u031f\u0320\7k\2\2\u0320\u0321\7p\2\2"+
-
"\u0321\u0322\7f\2\2\u0322\u0323\7g\2\2\u0323\u03ef\7z\2\2\u0324\u0325"+
-
"\7j\2\2\u0325\u0326\7c\2\2\u0326\u03ef\7u\2\2\u0327\u0328\7v\2\2\u0328"+
-
"\u0329\7c\2\2\u0329\u032a\7k\2\2\u032a\u03ef\7n\2\2\u032b\u032c\7c\2\2"+
-
"\u032c\u032d\7f\2\2\u032d\u03ef\7f\2\2\u032e\u032f\7t\2\2\u032f\u0330"+
-
"\7g\2\2\u0330\u0331\7o\2\2\u0331\u0332\7q\2\2\u0332\u0333\7x\2\2\u0333"+
-
"\u03ef\7g\2\2\u0334\u0335\7h\2\2\u0335\u0336\7k\2\2\u0336\u0337\7t\2\2"+
-
"\u0337\u0338\7u\2\2\u0338\u03ef\7v\2\2\u0339\u033a\7n\2\2\u033a\u033b"+
-
"\7c\2\2\u033b\u033c\7u\2\2\u033c\u03ef\7v\2\2\u033d\u033e\7m\2\2\u033e"+
-
"\u033f\7g\2\2\u033f\u0340\7{\2\2\u0340\u03ef\7u\2\2\u0341\u0342\7x\2\2"+
-
"\u0342\u0343\7c\2\2\u0343\u0344\7n\2\2\u0344\u0345\7w\2\2\u0345\u0346"+
-
"\7g\2\2\u0346\u03ef\7u\2\2\u0347\u0348\7n\2\2\u0348\u0349\7g\2\2\u0349"+
-
"\u034a\7p\2\2\u034a\u034b\7i\2\2\u034b\u034c\7v\2\2\u034c\u03ef\7j\2\2"+
-
"\u034d\u034e\7e\2\2\u034e\u034f\7q\2\2\u034f\u0350\7w\2\2\u0350\u0351"+
-
"\7p\2\2\u0351\u03ef\7v\2\2\u0352\u0353\7v\2\2\u0353\u0354\7c\2\2\u0354"+
-
"\u0355\7m\2\2\u0355\u03ef\7g\2\2\u0356\u0357\7f\2\2\u0357\u0358\7t\2\2"+
-
"\u0358\u0359\7q\2\2\u0359\u03ef\7r\2\2\u035a\u035b\7u\2\2\u035b\u035c"+
-
"\7k\2\2\u035c\u035d\7|\2\2\u035d\u03ef\7g\2\2\u035e\u035f\7t\2\2\u035f"+
-
"\u0360\7g\2\2\u0360\u0361\7x\2\2\u0361\u0362\7g\2\2\u0362\u0363\7t\2\2"+
-
"\u0363\u0364\7u\2\2\u0364\u03ef\7g\2\2\u0365\u0366\7k\2\2\u0366\u0367"+
-
"\7u\2\2\u0367\u0368\7a\2\2\u0368\u0369\7g\2\2\u0369\u036a\7o\2\2\u036a"+
-
"\u036b\7r\2\2\u036b\u036c\7v\2\2\u036c\u03ef\7{\2\2\u036d\u036e\7p\2\2"+
-
"\u036e\u036f\7q\2\2\u036f\u0370\7p\2\2\u0370\u0371\7a\2\2\u0371\u0372"+
-
"\7g\2\2\u0372\u0373\7o\2\2\u0373\u0374\7r\2\2\u0374\u0375\7v\2\2\u0375"+
-
"\u03ef\7{\2\2\u0376\u0377\7v\2\2\u0377\u0378\7q\2\2\u0378\u0379\7a\2\2"+
-
"\u0379\u037a\7u\2\2\u037a\u037b\7v\2\2\u037b\u037c\7t\2\2\u037c\u037d"+
-
"\7k\2\2\u037d\u037e\7p\2\2\u037e\u03ef\7i\2\2\u037f\u0380\7c\2\2\u0380"+
-
"\u0381\7x\2\2\u0381\u03ef\7i\2\2\u0382\u0383\7o\2\2\u0383\u0384\7c\2\2"+
-
"\u0384\u03ef\7z\2\2\u0385\u0386\7o\2\2\u0386\u0387\7k\2\2\u0387\u03ef"+
-
"\7p\2\2\u0388\u0389\7u\2\2\u0389\u038a\7v\2\2\u038a\u038b\7f\2\2\u038b"+
-
"\u038c\7g\2\2\u038c\u03ef\7x\2\2\u038d\u038e\7u\2\2\u038e\u038f\7w\2\2"+
-
"\u038f\u03ef\7o\2\2\u0390\u0391\7{\2\2\u0391\u0392\7g\2\2\u0392\u0393"+
-
"\7c\2\2\u0393\u03ef\7t\2\2\u0394\u0395\7o\2\2\u0395\u0396\7q\2\2\u0396"+
-
"\u0397\7p\2\2\u0397\u0398\7v\2\2\u0398\u03ef\7j\2\2\u0399\u039a\7f\2\2"+
-
"\u039a\u039b\7c\2\2\u039b\u039c\7{\2\2\u039c\u039d\7a\2\2\u039d\u039e"+
-
"\7q\2\2\u039e\u039f\7h\2\2\u039f\u03a0\7a\2\2\u03a0\u03a1\7o\2\2\u03a1"+
-
"\u03a2\7q\2\2\u03a2\u03a3\7p\2\2\u03a3\u03a4\7v\2\2\u03a4\u03ef\7j\2\2"+
-
"\u03a5\u03a6\7f\2\2\u03a6\u03a7\7c\2\2\u03a7\u03a8\7{\2\2\u03a8\u03a9"+
-
"\7a\2\2\u03a9\u03aa\7q\2\2\u03aa\u03ab\7h\2\2\u03ab\u03ac\7a\2\2\u03ac"+
-
"\u03ad\7y\2\2\u03ad\u03ae\7g\2\2\u03ae\u03af\7g\2\2\u03af\u03ef\7m\2\2"+
-
"\u03b0\u03b1\7f\2\2\u03b1\u03b2\7c\2\2\u03b2\u03b3\7{\2\2\u03b3\u03b4"+
-
"\7a\2\2\u03b4\u03b5\7q\2\2\u03b5\u03b6\7h\2\2\u03b6\u03b7\7a\2\2\u03b7"+
-
"\u03b8\7{\2\2\u03b8\u03b9\7g\2\2\u03b9\u03ba\7c\2\2\u03ba\u03ef\7t\2\2"+
-
"\u03bb\u03bc\7j\2\2\u03bc\u03bd\7q\2\2\u03bd\u03be\7w\2\2\u03be\u03ef"+
-
"\7t\2\2\u03bf\u03c0\7o\2\2\u03c0\u03c1\7k\2\2\u03c1\u03c2\7p\2\2\u03c2"+
-
"\u03c3\7w\2\2\u03c3\u03c4\7v\2\2\u03c4\u03ef\7g\2\2\u03c5\u03c6\7u\2\2"+
-
"\u03c6\u03c7\7g\2\2\u03c7\u03c8\7e\2\2\u03c8\u03c9\7q\2\2\u03c9\u03ca"+
-
"\7p\2\2\u03ca\u03ef\7f\2\2\u03cb\u03cc\7y\2\2\u03cc\u03cd\7g\2\2\u03cd"+
-
"\u03ce\7g\2\2\u03ce\u03cf\7m\2\2\u03cf\u03d0\7a\2\2\u03d0\u03d1\7q\2\2"+
-
"\u03d1\u03d2\7h\2\2\u03d2\u03d3\7a\2\2\u03d3\u03d4\7o\2\2\u03d4\u03d5"+
-
"\7q\2\2\u03d5\u03d6\7p\2\2\u03d6\u03d7\7v\2\2\u03d7\u03ef\7j\2\2\u03d8"+
-
"\u03d9\7y\2\2\u03d9\u03da\7g\2\2\u03da\u03db\7g\2\2\u03db\u03dc\7m\2\2"+
-
"\u03dc\u03dd\7a\2\2\u03dd\u03de\7q\2\2\u03de\u03df\7h\2\2\u03df\u03e0"+
-
"\7a\2\2\u03e0\u03e1\7{\2\2\u03e1\u03e2\7g\2\2\u03e2\u03e3\7c\2\2\u03e3"+
-
"\u03ef\7t\2\2\u03e4\u03e5\7s\2\2\u03e5\u03e6\7w\2\2\u03e6\u03e7\7c\2\2"+
-
"\u03e7\u03e8\7t\2\2\u03e8\u03e9\7v\2\2\u03e9\u03ea\7g\2\2\u03ea\u03ef"+
-
"\7t\2\2\u03eb\u03ec\7p\2\2\u03ec\u03ed\7q\2\2\u03ed\u03ef\7y\2\2\u03ee"+
-
"\u0092\3\2\2\2\u03ee\u009c\3\2\2\2\u03ee\u00a5\3\2\2\2\u03ee\u00af\3\2"+
-
"\2\2\u03ee\u00ba\3\2\2\2\u03ee\u00c2\3\2\2\2\u03ee\u00cb\3\2\2\2\u03ee"+
-
"\u00d7\3\2\2\2\u03ee\u00df\3\2\2\2\u03ee\u00e8\3\2\2\2\u03ee\u00f1\3\2"+
-
"\2\2\u03ee\u00f5\3\2\2\2\u03ee\u00f7\3\2\2\2\u03ee\u00f9\3\2\2\2\u03ee"+
-
"\u00fd\3\2\2\2\u03ee\u0101\3\2\2\2\u03ee\u0106\3\2\2\2\u03ee\u010f\3\2"+
-
"\2\2\u03ee\u0115\3\2\2\2\u03ee\u011b\3\2\2\2\u03ee\u0120\3\2\2\2\u03ee"+
-
"\u0127\3\2\2\2\u03ee\u0130\3\2\2\2\u03ee\u0137\3\2\2\2\u03ee\u013d\3\2"+
-
"\2\2\u03ee\u0149\3\2\2\2\u03ee\u0153\3\2\2\2\u03ee\u015b\3\2\2\2\u03ee"+
-
"\u0164\3\2\2\2\u03ee\u016b\3\2\2\2\u03ee\u0175\3\2\2\2\u03ee\u017f\3\2"+
-
"\2\2\u03ee\u0189\3\2\2\2\u03ee\u0193\3\2\2\2\u03ee\u01a5\3\2\2\2\u03ee"+
-
"\u01ac\3\2\2\2\u03ee\u01b5\3\2\2\2\u03ee\u01c1\3\2\2\2\u03ee\u01cd\3\2"+
-
"\2\2\u03ee\u01d8\3\2\2\2\u03ee\u01e1\3\2\2\2\u03ee\u01ea\3\2\2\2\u03ee"+
-
"\u01f7\3\2\2\2\u03ee\u01fb\3\2\2\2\u03ee\u0200\3\2\2\2\u03ee\u0209\3\2"+
-
"\2\2\u03ee\u0212\3\2\2\2\u03ee\u021a\3\2\2\2\u03ee\u0225\3\2\2\2\u03ee"+
-
"\u0232\3\2\2\2\u03ee\u0238\3\2\2\2\u03ee\u0243\3\2\2\2\u03ee\u0250\3\2"+
-
"\2\2\u03ee\u0260\3\2\2\2\u03ee\u0269\3\2\2\2\u03ee\u026f\3\2\2\2\u03ee"+
-
"\u0274\3\2\2\2\u03ee\u027b\3\2\2\2\u03ee\u0280\3\2\2\2\u03ee\u028a\3\2"+
-
"\2\2\u03ee\u0291\3\2\2\2\u03ee\u0294\3\2\2\2\u03ee\u0298\3\2\2\2\u03ee"+
-
"\u029d\3\2\2\2\u03ee\u02a1\3\2\2\2\u03ee\u02a6\3\2\2\2\u03ee\u02ac\3\2"+
-
"\2\2\u03ee\u02b0\3\2\2\2\u03ee\u02b4\3\2\2\2\u03ee\u02b6\3\2\2\2\u03ee"+
-
"\u02bb\3\2\2\2\u03ee\u02bf\3\2\2\2\u03ee\u02c3\3\2\2\2\u03ee\u02c7\3\2"+
-
"\2\2\u03ee\u02ca\3\2\2\2\u03ee\u02cd\3\2\2\2\u03ee\u02d0\3\2\2\2\u03ee"+
-
"\u02d4\3\2\2\2\u03ee\u02d8\3\2\2\2\u03ee\u02dc\3\2\2\2\u03ee\u02e0\3\2"+
-
"\2\2\u03ee\u02e7\3\2\2\2\u03ee\u02ee\3\2\2\2\u03ee\u02f1\3\2\2\2\u03ee"+
-
"\u02f6\3\2\2\2\u03ee\u02fb\3\2\2\2\u03ee\u02fe\3\2\2\2\u03ee\u0303\3\2"+
-
"\2\2\u03ee\u0308\3\2\2\2\u03ee\u030b\3\2\2\2\u03ee\u030f\3\2\2\2\u03ee"+
-
"\u0315\3\2\2\2\u03ee\u0319\3\2\2\2\u03ee\u031c\3\2\2\2\u03ee\u031f\3\2"+
-
"\2\2\u03ee\u0324\3\2\2\2\u03ee\u0327\3\2\2\2\u03ee\u032b\3\2\2\2\u03ee"+
-
"\u032e\3\2\2\2\u03ee\u0334\3\2\2\2\u03ee\u0339\3\2\2\2\u03ee\u033d\3\2"+
-
"\2\2\u03ee\u0341\3\2\2\2\u03ee\u0347\3\2\2\2\u03ee\u034d\3\2\2\2\u03ee"+
-
"\u0352\3\2\2\2\u03ee\u0356\3\2\2\2\u03ee\u035a\3\2\2\2\u03ee\u035e\3\2"+
-
"\2\2\u03ee\u0365\3\2\2\2\u03ee\u036d\3\2\2\2\u03ee\u0376\3\2\2\2\u03ee"+
-
"\u037f\3\2\2\2\u03ee\u0382\3\2\2\2\u03ee\u0385\3\2\2\2\u03ee\u0388\3\2"+
-
"\2\2\u03ee\u038d\3\2\2\2\u03ee\u0390\3\2\2\2\u03ee\u0394\3\2\2\2\u03ee"+
-
"\u0399\3\2\2\2\u03ee\u03a5\3\2\2\2\u03ee\u03b0\3\2\2\2\u03ee\u03bb\3\2"+
-
"\2\2\u03ee\u03bf\3\2\2\2\u03ee\u03c5\3\2\2\2\u03ee\u03cb\3\2\2\2\u03ee"+
-
"\u03d8\3\2\2\2\u03ee\u03e4\3\2\2\2\u03ee\u03eb\3\2\2\2\u03ef\20\3\2\2"+
-
"\2\u03f0\u03f1\7h\2\2\u03f1\u03f2\7t\2\2\u03f2\u03f3\7c\2\2\u03f3\u03f4"+
-
"\7i\2\2\u03f4\u03f5\7o\2\2\u03f5\u03f6\7g\2\2\u03f6\u03f7\7p\2\2\u03f7"+
-
"\u03f8\7v\2\2\u03f8\22\3\2\2\2\u03f9\u03ff\5\67\34\2\u03fa\u03fe\n\2\2"+
-
"\2\u03fb\u03fc\7^\2\2\u03fc\u03fe\7)\2\2\u03fd\u03fa\3\2\2\2\u03fd\u03fb"+
-
"\3\2\2\2\u03fe\u0401\3\2\2\2\u03ff\u03fd\3\2\2\2\u03ff\u0400\3\2\2\2\u0400"+
-
"\u0402\3\2\2\2\u0401\u03ff\3\2\2\2\u0402\u0403\5\67\34\2\u0403\24\3\2"+
-
"\2\2\u0404\u040a\59\35\2\u0405\u0409\n\3\2\2\u0406\u0407\7^\2\2\u0407"+
-
"\u0409\7$\2\2\u0408\u0405\3\2\2\2\u0408\u0406\3\2\2\2\u0409\u040c\3\2"+
-
"\2\2\u040a\u0408\3\2\2\2\u040a\u040b\3\2\2\2\u040b\u040d\3\2\2\2\u040c"+
-
"\u040a\3\2\2\2\u040d\u040e\59\35\2\u040e\26\3\2\2\2\u040f\u0410\7v\2\2"+
-
"\u0410\u0411\7t\2\2\u0411\u0412\7w\2\2\u0412\u0419\7g\2\2\u0413\u0414"+
-
"\7h\2\2\u0414\u0415\7c\2\2\u0415\u0416\7n\2\2\u0416\u0417\7u\2\2\u0417"+
-
"\u0419\7g\2\2\u0418\u040f\3\2\2\2\u0418\u0413\3\2\2\2\u0419\30\3\2\2\2"+
-
"\u041a\u041b\7p\2\2\u041b\u041c\7w\2\2\u041c\u041d\7n\2\2\u041d\u041e"+
-
"\7n\2\2\u041e\32\3\2\2\2\u041f\u0420\7?\2\2\u0420\u0421\7?\2\2\u0421\34"+
-
"\3\2\2\2\u0422\u0423\7#\2\2\u0423\u0424\7?\2\2\u0424\36\3\2\2\2\u0425"+
- "\u0426\7@\2\2\u0426\u0427\7?\2\2\u0427
\3\2\2\2\u0428\u0429\7>\2\2\u0429"+
-
"\u042a\7?\2\2\u042a\"\3\2\2\2\u042b\u042c\7@\2\2\u042c$\3\2\2\2\u042d"+
-
"\u042e\7>\2\2\u042e&\3\2\2\2\u042f\u0430\7(\2\2\u0430\u0431\7(\2\2\u0431"+
-
"(\3\2\2\2\u0432\u0433\7~\2\2\u0433\u0434\7~\2\2\u0434*\3\2\2\2\u0435\u0436"+
-
"\7~\2\2\u0436,\3\2\2\2\u0437\u0438\7#\2\2\u0438.\3\2\2\2\u0439\u043a\7"+
-
"*\2\2\u043a\60\3\2\2\2\u043b\u043c\7+\2\2\u043c\62\3\2\2\2\u043d\u043e"+
-
"\7}\2\2\u043e\64\3\2\2\2\u043f\u0440\7\177\2\2\u0440\66\3\2\2\2\u0441"+
-
"\u0442\7)\2\2\u04428\3\2\2\2\u0443\u0444\7$\2\2\u0444:\3\2\2\2\u0445\u0446"+
-
"\7\u0080\2\2\u0446<\3\2\2\2\u0447\u0448\7]\2\2\u0448>\3\2\2\2\u0449\u044a"+
-
"\7_\2\2\u044a@\3\2\2\2\u044b\u044c\7%\2\2\u044cB\3\2\2\2\u044d\u044e\7"+
-
".\2\2\u044eD\3\2\2\2\u044f\u0450\7<\2\2\u0450F\3\2\2\2\u0451\u0452\7/"+
-
"\2\2\u0452H\3\2\2\2\u0453\u0454\7\60\2\2\u0454J\3\2\2\2\u0455\u0456\7"+
-
"a\2\2\u0456L\3\2\2\2\u0457\u0458\7?\2\2\u0458N\3\2\2\2\u0459\u045a\7-"+
-
"\2\2\u045aP\3\2\2\2\u045b\u045c\7A\2\2\u045cR\3\2\2\2\u045d\u045e\7,\2"+
-
"\2\u045eT\3\2\2\2\u045f\u0460\7\61\2\2\u0460V\3\2\2\2\u0461\u0462\7\'"+
-
"\2\2\u0462X\3\2\2\2\u0463\u0464\7&\2\2\u0464Z\3\2\2\2\u0465\u046e\7\62"+
-
"\2\2\u0466\u046a\t\4\2\2\u0467\u0469\t\5\2\2\u0468\u0467\3\2\2\2\u0469"+
-
"\u046c\3\2\2\2\u046a\u0468\3\2\2\2\u046a\u046b\3\2\2\2\u046b\u046e\3\2"+
-
"\2\2\u046c\u046a\3\2\2\2\u046d\u0465\3\2\2\2\u046d\u0466\3\2\2\2\u046e"+
-
"\\\3\2\2\2\u046f\u0471\5I%\2\u0470\u0472\t\6\2\2\u0471\u0470\3\2\2\2\u0472"+
-
"\u0473\3\2\2\2\u0473\u0471\3\2\2\2\u0473\u0474\3\2\2\2\u0474^\3\2\2\2"+
-
"\u0475\u0477\t\7\2\2\u0476\u0478\t\b\2\2\u0477\u0476\3\2\2\2\u0477\u0478"+
-
"\3\2\2\2\u0478\u0479\3\2\2\2\u0479\u047a\5[.\2\u047a`\3\2\2\2\u047b\u047c"+
-
"\t\t\2\2\u047cb\3\2\2\2\u047d\u047e\t\n\2\2\u047ed\3\2\2\2\u047f\u0484"+
-
"\5a\61\2\u0480\u0484\5K&\2\u0481\u0484\5c\62\2\u0482\u0484\5Y-\2\u0483"+
-
"\u047f\3\2\2\2\u0483\u0480\3\2\2\2\u0483\u0481\3\2\2\2\u0483\u0482\3\2"+
-
"\2\2\u0484\u0485\3\2\2\2\u0485\u0483\3\2\2\2\u0485\u0486\3\2\2\2\u0486"+
-
"\u0490\3\2\2\2\u0487\u048f\5a\61\2\u0488\u048f\5Y-\2\u0489\u048f\5c\62"+
-
"\2\u048a\u048f\t\6\2\2\u048b\u048f\5E#\2\u048c\u048f\5G$\2\u048d\u048f"+
-
"\5K&\2\u048e\u0487\3\2\2\2\u048e\u0488\3\2\2\2\u048e\u0489\3\2\2\2\u048e"+
-
"\u048a\3\2\2\2\u048e\u048b\3\2\2\2\u048e\u048c\3\2\2\2\u048e\u048d\3\2"+
-
"\2\2\u048f\u0492\3\2\2\2\u0490\u048e\3\2\2\2\u0490\u0491\3\2\2\2\u0491"+
-
"f\3\2\2\2\u0492\u0490\3\2\2\2\u0493\u0494\7\61\2\2\u0494\u0495\7\61\2"+
-
"\2\u0495\u0499\3\2\2\2\u0496\u0498\n\13\2\2\u0497\u0496\3\2\2\2\u0498"+
-
"\u049b\3\2\2\2\u0499\u0497\3\2\2\2\u0499\u049a\3\2\2\2\u049a\u049d\3\2"+
-
"\2\2\u049b\u0499\3\2\2\2\u049c\u049e\7\17\2\2\u049d\u049c\3\2\2\2\u049d"+
-
"\u049e\3\2\2\2\u049e\u04a0\3\2\2\2\u049f\u04a1\t\f\2\2\u04a0\u049f\3\2"+
-
"\2\2\u04a1\u04ae\3\2\2\2\u04a2\u04a3\7\61\2\2\u04a3\u04a4\7,\2\2\u04a4"+
-
"\u04a8\3\2\2\2\u04a5\u04a7\13\2\2\2\u04a6\u04a5\3\2\2\2\u04a7\u04aa\3"+
-
"\2\2\2\u04a8\u04a9\3\2\2\2\u04a8\u04a6\3\2\2\2\u04a9\u04ab\3\2\2\2\u04aa"+
-
"\u04a8\3\2\2\2\u04ab\u04ac\7,\2\2\u04ac\u04ae\7\61\2\2\u04ad\u0493\3\2"+
-
"\2\2\u04ad\u04a2\3\2\2\2\u04ae\u04af\3\2\2\2\u04af\u04b0\b\64\2\2\u04b0"+
-
"h\3\2\2\2\u04b1\u04b3\t\r\2\2\u04b2\u04b1\3\2\2\2\u04b3\u04b4\3\2\2\2"+
-
"\u04b4\u04b2\3\2\2\2\u04b4\u04b5\3\2\2\2\u04b5\u04b6\3\2\2\2\u04b6\u04b7"+
-
"\b\65\2\2\u04b7j\3\2\2\2\u04b8\u04b9\13\2\2\2\u04b9l\3\2\2\2\27\2\u03ee"+
-
"\u03fd\u03ff\u0408\u040a\u0418\u046a\u046d\u0473\u0477\u0483\u0485\u048e"+
- "\u0490\u0499\u049d\u04a0\u04a8\u04ad\u04b4\3\b\2\2";
+
"\b\3\b\3\b\3\b\5\b\u03d6\n\b\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3"+
+
"\n\3\n\3\n\7\n\u03e5\n\n\f\n\16\n\u03e8\13\n\3\n\3\n\3\13\3\13\3\13\3"+
+
"\13\7\13\u03f0\n\13\f\13\16\13\u03f3\13\13\3\13\3\13\3\f\3\f\3\f\3\f\3"+
+
"\f\3\f\3\f\3\f\3\f\5\f\u0400\n\f\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3"+
+
"\17\3\17\3\17\3\20\3\20\3\20\3\21\3\21\3\21\3\22\3\22\3\23\3\23\3\24\3"+
+
"\24\3\24\3\25\3\25\3\25\3\26\3\26\3\27\3\27\3\30\3\30\3\31\3\31\3\32\3"+
+ "\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\37\3\37\3 \3
\3!\3!\3\""+
+
"\3\"\3#\3#\3$\3$\3%\3%\3&\3&\3\'\3\'\3(\3(\3)\3)\3*\3*\3+\3+\3,\3,\3-"+
+
"\3-\3.\3.\3.\7.\u0450\n.\f.\16.\u0453\13.\5.\u0455\n.\3/\3/\6/\u0459\n"+
+
"/\r/\16/\u045a\3\60\3\60\5\60\u045f\n\60\3\60\3\60\3\61\3\61\3\62\3\62"+
+
"\3\63\3\63\3\63\3\63\6\63\u046b\n\63\r\63\16\63\u046c\3\63\3\63\3\63\3"+
+
"\63\3\63\3\63\3\63\7\63\u0476\n\63\f\63\16\63\u0479\13\63\3\64\3\64\3"+
+
"\64\3\64\7\64\u047f\n\64\f\64\16\64\u0482\13\64\3\64\5\64\u0485\n\64\3"+
+
"\64\5\64\u0488\n\64\3\64\3\64\3\64\3\64\7\64\u048e\n\64\f\64\16\64\u0491"+
+
"\13\64\3\64\3\64\5\64\u0495\n\64\3\64\3\64\3\65\6\65\u049a\n\65\r\65\16"+
+
"\65\u049b\3\65\3\65\3\66\3\66\3\u048f\2\67\3\3\5\4\7\5\t\6\13\7\r\b\17"+
+
"\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+"+
+ "\27-\30/\31\61\32\63\33\65\34\67\359\36;\37=
?!A\"C#E$G%I&K\'M(O)Q*S+"+
+
"U,W-Y.[/]\60_\61a\2c\2e\62g\63i\64k\65\3\2\16\3\2))\3\2$$\3\2\63;\4\2"+
+
"\62;aa\3\2\62;\4\2GGgg\4\2--//\17\2\u00a2\u0251\u025b\u0294\u02b2\u0371"+
+
"\u0402\u0501\u1e04\u1ef5\u1f03\u2001\u200e\u200f\u2041\u2042\u2072\u2191"+
+
"\u2c02\u2ff1\u3003\ud801\uf902\ufdd1\ufdf2\uffff\4\2C\\c|\4\2\f\f\17\17"+
+
"\3\3\f\f\5\2\13\f\16\17\"\"\2\u0531\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2"+
+
"\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23"+
+
"\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2"+
+
"\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2"+
+
"\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3"+
+
"\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2"+
+
"\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2"+
+
"\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2["+
+
"\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2"+
+
"\2\2\3m\3\2\2\2\5t\3\2\2\2\7{\3\2\2\2\t\u0083\3\2\2\2\13\u0088\3\2\2\2"+
+
"\r\u008d\3\2\2\2\17\u03d5\3\2\2\2\21\u03d7\3\2\2\2\23\u03e0\3\2\2\2\25"+
+
"\u03eb\3\2\2\2\27\u03ff\3\2\2\2\31\u0401\3\2\2\2\33\u0406\3\2\2\2\35\u0409"+
+
"\3\2\2\2\37\u040c\3\2\2\2!\u040f\3\2\2\2#\u0412\3\2\2\2%\u0414\3\2\2\2"+
+
"\'\u0416\3\2\2\2)\u0419\3\2\2\2+\u041c\3\2\2\2-\u041e\3\2\2\2/\u0420\3"+
+
"\2\2\2\61\u0422\3\2\2\2\63\u0424\3\2\2\2\65\u0426\3\2\2\2\67\u0428\3\2"+
+
"\2\29\u042a\3\2\2\2;\u042c\3\2\2\2=\u042e\3\2\2\2?\u0430\3\2\2\2A\u0432"+
+
"\3\2\2\2C\u0434\3\2\2\2E\u0436\3\2\2\2G\u0438\3\2\2\2I\u043a\3\2\2\2K"+
+
"\u043c\3\2\2\2M\u043e\3\2\2\2O\u0440\3\2\2\2Q\u0442\3\2\2\2S\u0444\3\2"+
+
"\2\2U\u0446\3\2\2\2W\u0448\3\2\2\2Y\u044a\3\2\2\2[\u0454\3\2\2\2]\u0456"+
+
"\3\2\2\2_\u045c\3\2\2\2a\u0462\3\2\2\2c\u0464\3\2\2\2e\u046a\3\2\2\2g"+
+
"\u0494\3\2\2\2i\u0499\3\2\2\2k\u049f\3\2\2\2mn\7k\2\2no\7o\2\2op\7r\2"+
+
"\2pq\7q\2\2qr\7t\2\2rs\7v\2\2s\4\3\2\2\2tu\7k\2\2uv\7p\2\2vw\7v\2\2wx"+
+
"\7g\2\2xy\7p\2\2yz\7v\2\2z\6\3\2\2\2{|\7q\2\2|}\7t\2\2}~\7f\2\2~\177\7"+
+
"g\2\2\177\u0080\7t\2\2\u0080\u0081\7g\2\2\u0081\u0082\7f\2\2\u0082\b\3"+
+
"\2\2\2\u0083\u0084\7h\2\2\u0084\u0085\7n\2\2\u0085\u0086\7q\2\2\u0086"+
+
"\u0087\7y\2\2\u0087\n\3\2\2\2\u0088\u0089\7o\2\2\u0089\u008a\7g\2\2\u008a"+
+
"\u008b\7v\2\2\u008b\u008c\7c\2\2\u008c\f\3\2\2\2\u008d\u008e\7v\2\2\u008e"+
+
"\u008f\7g\2\2\u008f\u0090\7t\2\2\u0090\u0091\7o\2\2\u0091\16\3\2\2\2\u0092"+
+
"\u0093\7o\2\2\u0093\u0094\7g\2\2\u0094\u0095\7v\2\2\u0095\u0096\7c\2\2"+
+
"\u0096\u0097\7a\2\2\u0097\u0098\7v\2\2\u0098\u0099\7q\2\2\u0099\u009a"+
+
"\7m\2\2\u009a\u009b\7g\2\2\u009b\u03d6\7p\2\2\u009c\u009d\7o\2\2\u009d"+
+
"\u009e\7g\2\2\u009e\u009f\7v\2\2\u009f\u00a0\7c\2\2\u00a0\u00a1\7a\2\2"+
+
"\u00a1\u00a2\7r\2\2\u00a2\u00a3\7c\2\2\u00a3\u00a4\7t\2\2\u00a4\u03d6"+
+
"\7v\2\2\u00a5\u00a6\7o\2\2\u00a6\u00a7\7g\2\2\u00a7\u00a8\7v\2\2\u00a8"+
+
"\u00a9\7c\2\2\u00a9\u00aa\7a\2\2\u00aa\u00ab\7o\2\2\u00ab\u00ac\7q\2\2"+
+
"\u00ac\u00ad\7f\2\2\u00ad\u00ae\7g\2\2\u00ae\u03d6\7n\2\2\u00af\u00b0"+
+
"\7o\2\2\u00b0\u00b1\7g\2\2\u00b1\u00b2\7v\2\2\u00b2\u00b3\7c\2\2\u00b3"+
+
"\u00b4\7a\2\2\u00b4\u00b5\7k\2\2\u00b5\u00b6\7p\2\2\u00b6\u00b7\7v\2\2"+
+
"\u00b7\u00b8\7g\2\2\u00b8\u00b9\7p\2\2\u00b9\u03d6\7v\2\2\u00ba\u00bb"+
+
"\7o\2\2\u00bb\u00bc\7g\2\2\u00bc\u00bd\7v\2\2\u00bd\u00be\7c\2\2\u00be"+
+
"\u00bf\7a\2\2\u00bf\u00c0\7t\2\2\u00c0\u00c1\7g\2\2\u00c1\u03d6\7s\2\2"+
+
"\u00c2\u00c3\7o\2\2\u00c3\u00c4\7g\2\2\u00c4\u00c5\7v\2\2\u00c5\u00c6"+
+
"\7c\2\2\u00c6\u00c7\7a\2\2\u00c7\u00c8\7w\2\2\u00c8\u00c9\7u\2\2\u00c9"+
+
"\u00ca\7g\2\2\u00ca\u03d6\7t\2\2\u00cb\u00cc\7o\2\2\u00cc\u00cd\7g\2\2"+
+
"\u00cd\u00ce\7v\2\2\u00ce\u00cf\7c\2\2\u00cf\u00d0\7a\2\2\u00d0\u00d1"+
+
"\7e\2\2\u00d1\u00d2\7q\2\2\u00d2\u00d3\7o\2\2\u00d3\u00d4\7r\2\2\u00d4"+
+
"\u00d5\7c\2\2\u00d5\u00d6\7p\2\2\u00d6\u03d6\7{\2\2\u00d7\u00d8\7o\2\2"+
+
"\u00d8\u00d9\7g\2\2\u00d9\u00da\7v\2\2\u00da\u00db\7c\2\2\u00db\u00dc"+
+
"\7a\2\2\u00dc\u00dd\7u\2\2\u00dd\u00de\7{\2\2\u00de\u03d6\7u\2\2\u00df"+
+
"\u00e0\7o\2\2\u00e0\u00e1\7g\2\2\u00e1\u00e2\7v\2\2\u00e2\u00e3\7c\2\2"+
+
"\u00e3\u00e4\7a\2\2\u00e4\u00e5\7e\2\2\u00e5\u00e6\7q\2\2\u00e6\u00e7"+
+
"\7p\2\2\u00e7\u03d6\7x\2\2\u00e8\u00e9\7o\2\2\u00e9\u00ea\7g\2\2\u00ea"+
+
"\u00eb\7v\2\2\u00eb\u00ec\7c\2\2\u00ec\u00ed\7a\2\2\u00ed\u00ee\7h\2\2"+
+
"\u00ee\u00ef\7t\2\2\u00ef\u00f0\7c\2\2\u00f0\u03d6\7i\2\2\u00f1\u00f2"+
+
"\7l\2\2\u00f2\u00f3\7u\2\2\u00f3\u00f4\7q\2\2\u00f4\u03d6\7p\2\2\u00f5"+
+
"\u00f6\7k\2\2\u00f6\u03d6\7h\2\2\u00f7\u00f8\7k\2\2\u00f8\u03d6\7f\2\2"+
+
"\u00f9\u00fa\7v\2\2\u00fa\u00fb\7j\2\2\u00fb\u00fc\7k\2\2\u00fc\u03d6"+
+
"\7u\2\2\u00fd\u00fe\7r\2\2\u00fe\u00ff\7c\2\2\u00ff\u0100\7t\2\2\u0100"+
+
"\u03d6\7v\2\2\u0101\u0102\7r\2\2\u0102\u0103\7c\2\2\u0103\u0104\7t\2\2"+
+
"\u0104\u0105\7v\2\2\u0105\u03d6\7u\2\2\u0106\u0107\7c\2\2\u0107\u0108"+
+
"\7p\2\2\u0108\u0109\7e\2\2\u0109\u010a\7g\2\2\u010a\u010b\7u\2\2\u010b"+
+
"\u010c\7v\2\2\u010c\u010d\7q\2\2\u010d\u010e\7t\2\2\u010e\u03d6\7u\2\2"+
+
"\u010f\u0110\7r\2\2\u0110\u0111\7c\2\2\u0111\u0112\7t\2\2\u0112\u0113"+
+
"\7g\2\2\u0113\u0114\7p\2\2\u0114\u03d6\7v\2\2\u0115\u0116\7i\2\2\u0116"+
+
"\u0117\7t\2\2\u0117\u0118\7q\2\2\u0118\u0119\7w\2\2\u0119\u011a\7r\2\2"+
+
"\u011a\u03d6\7u\2\2\u011b\u011c\7x\2\2\u011c\u011d\7c\2\2\u011d\u011e"+
+
"\7n\2\2\u011e\u011f\7w\2\2\u011f\u03d6\7g\2\2\u0120\u0121\7c\2\2\u0121"+
+
"\u0122\7n\2\2\u0122\u0123\7k\2\2\u0123\u0124\7c\2\2\u0124\u0125\7u\2\2"+
+
"\u0125\u0126\7g\2\2\u0126\u03d6\7u\2\2\u0127\u0128\7u\2\2\u0128\u0129"+
+
"\7v\2\2\u0129\u012a\7c\2\2\u012a\u012b\7t\2\2\u012b\u012c\7v\2\2\u012c"+
+
"\u012d\7a\2\2\u012d\u012e\7k\2\2\u012e\u012f\7f\2\2\u012f\u03d6\7z\2\2"+
+
"\u0130\u0131\7g\2\2\u0131\u0132\7p\2\2\u0132\u0133\7f\2\2\u0133\u0134"+
+
"\7a\2\2\u0134\u0135\7k\2\2\u0135\u0136\7f\2\2\u0136\u03d6\7z\2\2\u0137"+
+
"\u0138\7t\2\2\u0138\u0139\7g\2\2\u0139\u013a\7s\2\2\u013a\u013b\7a\2\2"+
+
"\u013b\u013c\7k\2\2\u013c\u03d6\7f\2\2\u013d\u013e\7t\2\2\u013e\u013f"+
+
"\7g\2\2\u013f\u0140\7s\2\2\u0140\u0141\7a\2\2\u0141\u0142\7p\2\2\u0142"+
+
"\u0143\7q\2\2\u0143\u0144\7t\2\2\u0144\u0145\7o\2\2\u0145\u0146\7v\2\2"+
+
"\u0146\u0147\7g\2\2\u0147\u0148\7z\2\2\u0148\u03d6\7v\2\2\u0149\u014a"+
+
"\7t\2\2\u014a\u014b\7g\2\2\u014b\u014c\7s\2\2\u014c\u014d\7a\2\2\u014d"+
+
"\u014e\7v\2\2\u014e\u014f\7u\2\2\u014f\u0150\7v\2\2\u0150\u0151\7c\2\2"+
+
"\u0151\u0152\7o\2\2\u0152\u03d6\7r\2\2\u0153\u0154\7t\2\2\u0154\u0155"+
+
"\7g\2\2\u0155\u0156\7s\2\2\u0156\u0157\7a\2\2\u0157\u0158\7c\2\2\u0158"+
+
"\u0159\7f\2\2\u0159\u015a\7f\2\2\u015a\u03d6\7t\2\2\u015b\u015c\7t\2\2"+
+
"\u015c\u015d\7g\2\2\u015d\u015e\7s\2\2\u015e\u015f\7a\2\2\u015f\u0160"+
+
"\7c\2\2\u0160\u0161\7i\2\2\u0161\u0162\7g\2\2\u0162\u0163\7p\2\2\u0163"+
+
"\u03d6\7v\2\2\u0164\u0165\7w\2\2\u0165\u0166\7u\2\2\u0166\u0167\7g\2\2"+
+
"\u0167\u0168\7t\2\2\u0168\u0169\7a\2\2\u0169\u016a\7k\2\2\u016a\u03d6"+
+
"\7f\2\2\u016b\u016c\7w\2\2\u016c\u016d\7u\2\2\u016d\u016e\7g\2\2\u016e"+
+
"\u016f\7t\2\2\u016f\u0170\7a\2\2\u0170\u0171\7h\2\2\u0171\u0172\7p\2\2"+
+
"\u0172\u0173\7c\2\2\u0173\u0174\7o\2\2\u0174\u03d6\7g\2\2\u0175\u0176"+
+
"\7w\2\2\u0176\u0177\7u\2\2\u0177\u0178\7g\2\2\u0178\u0179\7t\2\2\u0179"+
+
"\u017a\7a\2\2\u017a\u017b\7n\2\2\u017b\u017c\7p\2\2\u017c\u017d\7c\2\2"+
+
"\u017d\u017e\7o\2\2\u017e\u03d6\7g\2\2\u017f\u0180\7w\2\2\u0180\u0181"+
+
"\7u\2\2\u0181\u0182\7g\2\2\u0182\u0183\7t\2\2\u0183\u0184\7a\2\2\u0184"+
+
"\u0185\7g\2\2\u0185\u0186\7o\2\2\u0186\u0187\7c\2\2\u0187\u0188\7k\2\2"+
+
"\u0188\u03d6\7n\2\2\u0189\u018a\7w\2\2\u018a\u018b\7u\2\2\u018b\u018c"+
+
"\7g\2\2\u018c\u018d\7t\2\2\u018d\u018e\7a\2\2\u018e\u018f\7c\2\2\u018f"+
+
"\u0190\7f\2\2\u0190\u0191\7o\2\2\u0191\u0192\7k\2\2\u0192\u03d6\7p\2\2"+
+
"\u0193\u0194\7w\2\2\u0194\u0195\7u\2\2\u0195\u0196\7g\2\2\u0196\u0197"+
+
"\7t\2\2\u0197\u0198\7a\2\2\u0198\u0199\7u\2\2\u0199\u019a\7k\2\2\u019a"+
+
"\u019b\7i\2\2\u019b\u019c\7p\2\2\u019c\u019d\7w\2\2\u019d\u019e\7r\2\2"+
+
"\u019e\u019f\7a\2\2\u019f\u01a0\7v\2\2\u01a0\u01a1\7u\2\2\u01a1\u01a2"+
+
"\7v\2\2\u01a2\u01a3\7c\2\2\u01a3\u01a4\7o\2\2\u01a4\u03d6\7r\2\2\u01a5"+
+
"\u01a6\7e\2\2\u01a6\u01a7\7q\2\2\u01a7\u01a8\7o\2\2\u01a8\u01a9\7r\2\2"+
+
"\u01a9\u01aa\7a\2\2\u01aa\u01ab\7k\2\2\u01ab\u03d6\7f\2\2\u01ac\u01ad"+
+
"\7e\2\2\u01ad\u01ae\7q\2\2\u01ae\u01af\7o\2\2\u01af\u01b0\7r\2\2\u01b0"+
+
"\u01b1\7a\2\2\u01b1\u01b2\7p\2\2\u01b2\u01b3\7c\2\2\u01b3\u01b4\7o\2\2"+
+
"\u01b4\u03d6\7g\2\2\u01b5\u01b6\7e\2\2\u01b6\u01b7\7q\2\2\u01b7\u01b8"+
+
"\7o\2\2\u01b8\u01b9\7r\2\2\u01b9\u01ba\7a\2\2\u01ba\u01bb\7y\2\2\u01bb"+
+
"\u01bc\7g\2\2\u01bc\u01bd\7d\2\2\u01bd\u01be\7u\2\2\u01be\u01bf\7k\2\2"+
+
"\u01bf\u01c0\7v\2\2\u01c0\u03d6\7g\2\2\u01c1\u01c2\7e\2\2\u01c2\u01c3"+
+
"\7q\2\2\u01c3\u01c4\7o\2\2\u01c4\u01c5\7r\2\2\u01c5\u01c6\7a\2\2\u01c6"+
+
"\u01c7\7e\2\2\u01c7\u01c8\7q\2\2\u01c8\u01c9\7w\2\2\u01c9\u01ca\7p\2\2"+
+
"\u01ca\u01cb\7v\2\2\u01cb\u01cc\7t\2\2\u01cc\u03d6\7{\2\2\u01cd\u01ce"+
+
"\7e\2\2\u01ce\u01cf\7q\2\2\u01cf\u01d0\7o\2\2\u01d0\u01d1\7r\2\2\u01d1"+
+
"\u01d2\7a\2\2\u01d2\u01d3\7t\2\2\u01d3\u01d4\7g\2\2\u01d4\u01d5\7i\2\2"+
+
"\u01d5\u01d6\7k\2\2\u01d6\u01d7\7q\2\2\u01d7\u03d6\7p\2\2\u01d8\u01d9"+
+
"\7e\2\2\u01d9\u01da\7q\2\2\u01da\u01db\7o\2\2\u01db\u01dc\7r\2\2\u01dc"+
+
"\u01dd\7a\2\2\u01dd\u01de\7e\2\2\u01de\u01df\7k\2\2\u01df\u01e0\7v\2\2"+
+
"\u01e0\u03d6\7{\2\2\u01e1\u01e2\7e\2\2\u01e2\u01e3\7q\2\2\u01e3\u01e4"+
+
"\7o\2\2\u01e4\u01e5\7r\2\2\u01e5\u01e6\7a\2\2\u01e6\u01e7\7c\2\2\u01e7"+
+
"\u01e8\7f\2\2\u01e8\u01e9\7f\2\2\u01e9\u03d6\7t\2\2\u01ea\u01eb\7e\2\2"+
+
"\u01eb\u01ec\7q\2\2\u01ec\u01ed\7o\2\2\u01ed\u01ee\7r\2\2\u01ee\u01ef"+
+
"\7a\2\2\u01ef\u01f0\7r\2\2\u01f0\u01f1\7q\2\2\u01f1\u01f2\7u\2\2\u01f2"+
+
"\u01f3\7v\2\2\u01f3\u01f4\7e\2\2\u01f4\u01f5\7q\2\2\u01f5\u01f6\7f\2\2"+
+
"\u01f6\u03d6\7g\2\2\u01f7\u01f8\7v\2\2\u01f8\u01f9\7t\2\2\u01f9\u01fa"+
+
"\7k\2\2\u01fa\u03d6\7o\2\2\u01fb\u01fc\7u\2\2\u01fc\u01fd\7v\2\2\u01fd"+
+
"\u01fe\7t\2\2\u01fe\u01ff\7k\2\2\u01ff\u03d6\7r\2\2\u0200\u0201\7w\2\2"+
+
"\u0201\u0202\7r\2\2\u0202\u0203\7r\2\2\u0203\u0204\7g\2\2\u0204\u0205"+
+
"\7t\2\2\u0205\u0206\7e\2\2\u0206\u0207\7c\2\2\u0207\u0208\7u\2\2\u0208"+
+
"\u03d6\7g\2\2\u0209\u020a\7n\2\2\u020a\u020b\7q\2\2\u020b\u020c\7y\2\2"+
+
"\u020c\u020d\7g\2\2\u020d\u020e\7t\2\2\u020e\u020f\7e\2\2\u020f\u0210"+
+
"\7c\2\2\u0210\u0211\7u\2\2\u0211\u03d6\7g\2\2\u0212\u0213\7k\2\2\u0213"+
+
"\u0214\7u\2\2\u0214\u0215\7a\2\2\u0215\u0216\7c\2\2\u0216\u0217\7n\2\2"+
+
"\u0217\u0218\7r\2\2\u0218\u0219\7j\2\2\u0219\u03d6\7c\2\2\u021a\u021b"+
+
"\7k\2\2\u021b\u021c\7u\2\2\u021c\u021d\7a\2\2\u021d\u021e\7c\2\2\u021e"+
+
"\u021f\7n\2\2\u021f\u0220\7r\2\2\u0220\u0221\7j\2\2\u0221\u0222\7c\2\2"+
+
"\u0222\u0223\7p\2\2\u0223\u0224\7w\2\2\u0224\u03d6\7o\2\2\u0225\u0226"+
+
"\7k\2\2\u0226\u0227\7u\2\2\u0227\u0228\7a\2\2\u0228\u0229\7y\2\2\u0229"+
+
"\u022a\7j\2\2\u022a\u022b\7k\2\2\u022b\u022c\7v\2\2\u022c\u022d\7g\2\2"+
+
"\u022d\u022e\7u\2\2\u022e\u022f\7r\2\2\u022f\u0230\7c\2\2\u0230\u0231"+
+
"\7e\2\2\u0231\u03d6\7g\2\2\u0232\u0233\7k\2\2\u0233\u0234\7u\2\2\u0234"+
+
"\u0235\7a\2\2\u0235\u0236\7p\2\2\u0236\u0237\7w\2\2\u0237\u03d6\7o\2\2"+
+
"\u0238\u0239\7k\2\2\u0239\u023a\7u\2\2\u023a\u023b\7a\2\2\u023b\u023c"+
+
"\7p\2\2\u023c\u023d\7w\2\2\u023d\u023e\7o\2\2\u023e\u023f\7u\2\2\u023f"+
+
"\u0240\7r\2\2\u0240\u0241\7c\2\2\u0241\u0242\7e\2\2\u0242\u03d6\7g\2\2"+
+
"\u0243\u0244\7k\2\2\u0244\u0245\7u\2\2\u0245\u0246\7a\2\2\u0246\u0247"+
+
"\7c\2\2\u0247\u0248\7n\2\2\u0248\u0249\7r\2\2\u0249\u024a\7j\2\2\u024a"+
+
"\u024b\7c\2\2\u024b\u024c\7u\2\2\u024c\u024d\7r\2\2\u024d\u024e\7c\2\2"+
+
"\u024e\u024f\7e\2\2\u024f\u03d6\7g\2\2\u0250\u0251\7k\2\2\u0251\u0252"+
+
"\7u\2\2\u0252\u0253\7a\2\2\u0253\u0254\7c\2\2\u0254\u0255\7n\2\2\u0255"+
+
"\u0256\7r\2\2\u0256\u0257\7j\2\2\u0257\u0258\7c\2\2\u0258\u0259\7p\2\2"+
+
"\u0259\u025a\7w\2\2\u025a\u025b\7o\2\2\u025b\u025c\7u\2\2\u025c\u025d"+
+
"\7r\2\2\u025d\u025e\7c\2\2\u025e\u025f\7e\2\2\u025f\u03d6\7g\2\2\u0260"+
+
"\u0261\7u\2\2\u0261\u0262\7w\2\2\u0262\u0263\7d\2\2\u0263\u0264\7u\2\2"+
+
"\u0264\u0265\7v\2\2\u0265\u0266\7t\2\2\u0266\u0267\7k\2\2\u0267\u0268"+
+
"\7p\2\2\u0268\u03d6\7i\2\2\u0269\u026a\7e\2\2\u026a\u026b\7j\2\2\u026b"+
+
"\u026c\7c\2\2\u026c\u026d\7t\2\2\u026d\u026e\7C\2\2\u026e\u03d6\7v\2\2"+
+
"\u026f\u0270\7t\2\2\u0270\u0271\7g\2\2\u0271\u0272\7i\2\2\u0272\u0273"+
+
"\7g\2\2\u0273\u03d6\7z\2\2\u0274\u0275\7u\2\2\u0275\u0276\7q\2\2\u0276"+
+
"\u0277\7w\2\2\u0277\u0278\7p\2\2\u0278\u0279\7f\2\2\u0279\u027a\7g\2\2"+
+
"\u027a\u03d6\7z\2\2\u027b\u027c\7u\2\2\u027c\u027d\7r\2\2\u027d\u027e"+
+
"\7n\2\2\u027e\u027f\7k\2\2\u027f\u03d6\7v\2\2\u0280\u0281\7u\2\2\u0281"+
+
"\u0282\7r\2\2\u0282\u0283\7n\2\2\u0283\u0284\7k\2\2\u0284\u0285\7v\2\2"+
+
"\u0285\u0286\7a\2\2\u0286\u0287\7v\2\2\u0287\u0288\7t\2\2\u0288\u0289"+
+
"\7k\2\2\u0289\u03d6\7o\2\2\u028a\u028b\7t\2\2\u028b\u028c\7g\2\2\u028c"+
+
"\u028d\7r\2\2\u028d\u028e\7n\2\2\u028e\u028f\7c\2\2\u028f\u0290\7e\2\2"+
+
"\u0290\u03d6\7g\2\2\u0291\u0292\7c\2\2\u0292\u0293\7d\2\2\u0293\u03d6"+
+
"\7u\2\2\u0294\u0295\7e\2\2\u0295\u0296\7g\2\2\u0296\u0297\7k\2\2\u0297"+
+
"\u03d6\7n\2\2\u0298\u0299\7h\2\2\u0299\u029a\7n\2\2\u029a\u029b\7q\2\2"+
+
"\u029b\u029c\7q\2\2\u029c\u03d6\7t\2\2\u029d\u029e\7t\2\2\u029e\u029f"+
+
"\7k\2\2\u029f\u02a0\7p\2\2\u02a0\u03d6\7v\2\2\u02a1\u02a2\7t\2\2\u02a2"+
+
"\u02a3\7q\2\2\u02a3\u02a4\7w\2\2\u02a4\u02a5\7p\2\2\u02a5\u03d6\7f\2\2"+
+
"\u02a6\u02a7\7u\2\2\u02a7\u02a8\7k\2\2\u02a8\u02a9\7i\2\2\u02a9\u02aa"+
+
"\7p\2\2\u02aa\u02ab\7w\2\2\u02ab\u03d6\7o\2\2\u02ac\u02ad\7u\2\2\u02ad"+
+
"\u02ae\7s\2\2\u02ae\u02af\7t\2\2\u02af\u03d6\7v\2\2\u02b0\u02b1\7e\2\2"+
+
"\u02b1\u02b2\7d\2\2\u02b2\u02b3\7t\2\2\u02b3\u03d6\7v\2\2\u02b4\u02b5"+
+
"\7r\2\2\u02b5\u03d6\7k\2\2\u02b6\u02b7\7g\2\2\u02b7\u02b8\7w\2\2\u02b8"+
+
"\u02b9\7n\2\2\u02b9\u02ba\7g\2\2\u02ba\u03d6\7t\2\2\u02bb\u02bc\7c\2\2"+
+
"\u02bc\u02bd\7e\2\2\u02bd\u02be\7q\2\2\u02be\u03d6\7u\2\2\u02bf\u02c0"+
+
"\7c\2\2\u02c0\u02c1\7u\2\2\u02c1\u02c2\7k\2\2\u02c2\u03d6\7p\2\2\u02c3"+
+
"\u02c4\7c\2\2\u02c4\u02c5\7v\2\2\u02c5\u02c6\7c\2\2\u02c6\u03d6\7p\2\2"+
+
"\u02c7\u02c8\7e\2\2\u02c8\u02c9\7q\2\2\u02c9\u03d6\7u\2\2\u02ca\u02cb"+
+
"\7u\2\2\u02cb\u02cc\7k\2\2\u02cc\u03d6\7p\2\2\u02cd\u02ce\7v\2\2\u02ce"+
+
"\u02cf\7c\2\2\u02cf\u03d6\7p\2\2\u02d0\u02d1\7e\2\2\u02d1\u02d2\7q\2\2"+
+
"\u02d2\u02d3\7u\2\2\u02d3\u03d6\7j\2\2\u02d4\u02d5\7u\2\2\u02d5\u02d6"+
+
"\7k\2\2\u02d6\u02d7\7p\2\2\u02d7\u03d6\7j\2\2\u02d8\u02d9\7v\2\2\u02d9"+
+
"\u02da\7c\2\2\u02da\u02db\7p\2\2\u02db\u03d6\7j\2\2\u02dc\u02dd\7c\2\2"+
+
"\u02dd\u02de\7v\2\2\u02de\u02df\7p\2\2\u02df\u03d6\7\64\2\2\u02e0\u02e1"+
+
"\7f\2\2\u02e1\u02e2\7g\2\2\u02e2\u02e3\7i\2\2\u02e3\u02e4\7t\2\2\u02e4"+
+
"\u02e5\7g\2\2\u02e5\u02e6\7g\2\2\u02e6\u03d6\7u\2\2\u02e7\u02e8\7t\2\2"+
+
"\u02e8\u02e9\7c\2\2\u02e9\u02ea\7f\2\2\u02ea\u02eb\7k\2\2\u02eb\u02ec"+
+
"\7c\2\2\u02ec\u02ed\7p\2\2\u02ed\u03d6\7u\2\2\u02ee\u02ef\7g\2\2\u02ef"+
+
"\u02f0\7z\2\2\u02f0\u03d6\7r\2\2\u02f1\u02f2\7g\2\2\u02f2\u02f3\7z\2\2"+
+
"\u02f3\u02f4\7r\2\2\u02f4\u02f5\7o\2\2\u02f5\u03d6\7\63\2\2\u02f6\u02f7"+
+
"\7j\2\2\u02f7\u02f8\7{\2\2\u02f8\u02f9\7r\2\2\u02f9\u02fa\7q\2\2\u02fa"+
+
"\u03d6\7v\2\2\u02fb\u02fc\7n\2\2\u02fc\u02fd\7q\2\2\u02fd\u03d6\7i\2\2"+
+
"\u02fe\u02ff\7n\2\2\u02ff\u0300\7q\2\2\u0300\u0301\7i\2\2\u0301\u0302"+
+
"\7\63\2\2\u0302\u03d6\7\62\2\2\u0303\u0304\7n\2\2\u0304\u0305\7q\2\2\u0305"+
+
"\u0306\7i\2\2\u0306\u0307\7\63\2\2\u0307\u03d6\7r\2\2\u0308\u0309\7r\2"+
+
"\2\u0309\u030a\7q\2\2\u030a\u03d6\7y\2\2\u030b\u030c\7t\2\2\u030c\u030d"+
+
"\7c\2\2\u030d\u030e\7p\2\2\u030e\u03d6\7f\2\2\u030f\u0310\7u\2\2\u0310"+
+
"\u0311\7s\2\2\u0311\u0312\7w\2\2\u0312\u0313\7c\2\2\u0313\u0314\7t\2\2"+
+
"\u0314\u03d6\7g\2\2\u0315\u0316\7n\2\2\u0316\u0317\7k\2\2\u0317\u0318"+
+
"\7u\2\2\u0318\u03d6\7v\2\2\u0319\u031a\7i\2\2\u031a\u031b\7g\2\2\u031b"+
+
"\u03d6\7v\2\2\u031c\u031d\7j\2\2\u031d\u031e\7c\2\2\u031e\u03d6\7u\2\2"+
+
"\u031f\u0320\7h\2\2\u0320\u0321\7k\2\2\u0321\u0322\7t\2\2\u0322\u0323"+
+
"\7u\2\2\u0323\u03d6\7v\2\2\u0324\u0325\7n\2\2\u0325\u0326\7c\2\2\u0326"+
+
"\u0327\7u\2\2\u0327\u03d6\7v\2\2\u0328\u0329\7m\2\2\u0329\u032a\7g\2\2"+
+
"\u032a\u032b\7{\2\2\u032b\u03d6\7u\2\2\u032c\u032d\7x\2\2\u032d\u032e"+
+
"\7c\2\2\u032e\u032f\7n\2\2\u032f\u0330\7w\2\2\u0330\u0331\7g\2\2\u0331"+
+
"\u03d6\7u\2\2\u0332\u0333\7n\2\2\u0333\u0334\7g\2\2\u0334\u0335\7p\2\2"+
+
"\u0335\u0336\7i\2\2\u0336\u0337\7v\2\2\u0337\u03d6\7j\2\2\u0338\u0339"+
+
"\7e\2\2\u0339\u033a\7q\2\2\u033a\u033b\7w\2\2\u033b\u033c\7p\2\2\u033c"+
+
"\u03d6\7v\2\2\u033d\u033e\7u\2\2\u033e\u033f\7k\2\2\u033f\u0340\7|\2\2"+
+
"\u0340\u03d6\7g\2\2\u0341\u0342\7u\2\2\u0342\u0343\7q\2\2\u0343\u0344"+
+
"\7t\2\2\u0344\u03d6\7v\2\2\u0345\u0346\7t\2\2\u0346\u0347\7g\2\2\u0347"+
+
"\u0348\7x\2\2\u0348\u0349\7g\2\2\u0349\u034a\7t\2\2\u034a\u034b\7u\2\2"+
+
"\u034b\u03d6\7g\2\2\u034c\u034d\7k\2\2\u034d\u034e\7u\2\2\u034e\u034f"+
+
"\7a\2\2\u034f\u0350\7g\2\2\u0350\u0351\7o\2\2\u0351\u0352\7r\2\2\u0352"+
+
"\u0353\7v\2\2\u0353\u03d6\7{\2\2\u0354\u0355\7p\2\2\u0355\u0356\7q\2\2"+
+
"\u0356\u0357\7p\2\2\u0357\u0358\7a\2\2\u0358\u0359\7g\2\2\u0359\u035a"+
+
"\7o\2\2\u035a\u035b\7r\2\2\u035b\u035c\7v\2\2\u035c\u03d6\7{\2\2\u035d"+
+
"\u035e\7v\2\2\u035e\u035f\7q\2\2\u035f\u0360\7a\2\2\u0360\u0361\7u\2\2"+
+
"\u0361\u0362\7v\2\2\u0362\u0363\7t\2\2\u0363\u0364\7k\2\2\u0364\u0365"+
+
"\7p\2\2\u0365\u03d6\7i\2\2\u0366\u0367\7c\2\2\u0367\u0368\7x\2\2\u0368"+
+
"\u03d6\7i\2\2\u0369\u036a\7o\2\2\u036a\u036b\7c\2\2\u036b\u03d6\7z\2\2"+
+
"\u036c\u036d\7o\2\2\u036d\u036e\7k\2\2\u036e\u03d6\7p\2\2\u036f\u0370"+
+
"\7u\2\2\u0370\u0371\7v\2\2\u0371\u0372\7f\2\2\u0372\u0373\7g\2\2\u0373"+
+
"\u03d6\7x\2\2\u0374\u0375\7u\2\2\u0375\u0376\7w\2\2\u0376\u03d6\7o\2\2"+
+
"\u0377\u0378\7{\2\2\u0378\u0379\7g\2\2\u0379\u037a\7c\2\2\u037a\u03d6"+
+
"\7t\2\2\u037b\u037c\7o\2\2\u037c\u037d\7q\2\2\u037d\u037e\7p\2\2\u037e"+
+
"\u037f\7v\2\2\u037f\u03d6\7j\2\2\u0380\u0381\7f\2\2\u0381\u0382\7c\2\2"+
+
"\u0382\u0383\7{\2\2\u0383\u0384\7a\2\2\u0384\u0385\7q\2\2\u0385\u0386"+
+
"\7h\2\2\u0386\u0387\7a\2\2\u0387\u0388\7o\2\2\u0388\u0389\7q\2\2\u0389"+
+
"\u038a\7p\2\2\u038a\u038b\7v\2\2\u038b\u03d6\7j\2\2\u038c\u038d\7f\2\2"+
+
"\u038d\u038e\7c\2\2\u038e\u038f\7{\2\2\u038f\u0390\7a\2\2\u0390\u0391"+
+
"\7q\2\2\u0391\u0392\7h\2\2\u0392\u0393\7a\2\2\u0393\u0394\7y\2\2\u0394"+
+
"\u0395\7g\2\2\u0395\u0396\7g\2\2\u0396\u03d6\7m\2\2\u0397\u0398\7f\2\2"+
+
"\u0398\u0399\7c\2\2\u0399\u039a\7{\2\2\u039a\u039b\7a\2\2\u039b\u039c"+
+
"\7q\2\2\u039c\u039d\7h\2\2\u039d\u039e\7a\2\2\u039e\u039f\7{\2\2\u039f"+
+
"\u03a0\7g\2\2\u03a0\u03a1\7c\2\2\u03a1\u03d6\7t\2\2\u03a2\u03a3\7j\2\2"+
+
"\u03a3\u03a4\7q\2\2\u03a4\u03a5\7w\2\2\u03a5\u03d6\7t\2\2\u03a6\u03a7"+
+
"\7o\2\2\u03a7\u03a8\7k\2\2\u03a8\u03a9\7p\2\2\u03a9\u03aa\7w\2\2\u03aa"+
+
"\u03ab\7v\2\2\u03ab\u03d6\7g\2\2\u03ac\u03ad\7u\2\2\u03ad\u03ae\7g\2\2"+
+
"\u03ae\u03af\7e\2\2\u03af\u03b0\7q\2\2\u03b0\u03b1\7p\2\2\u03b1\u03d6"+
+
"\7f\2\2\u03b2\u03b3\7y\2\2\u03b3\u03b4\7g\2\2\u03b4\u03b5\7g\2\2\u03b5"+
+
"\u03b6\7m\2\2\u03b6\u03b7\7a\2\2\u03b7\u03b8\7q\2\2\u03b8\u03b9\7h\2\2"+
+
"\u03b9\u03ba\7a\2\2\u03ba\u03bb\7o\2\2\u03bb\u03bc\7q\2\2\u03bc\u03bd"+
+
"\7p\2\2\u03bd\u03be\7v\2\2\u03be\u03d6\7j\2\2\u03bf\u03c0\7y\2\2\u03c0"+
+
"\u03c1\7g\2\2\u03c1\u03c2\7g\2\2\u03c2\u03c3\7m\2\2\u03c3\u03c4\7a\2\2"+
+
"\u03c4\u03c5\7q\2\2\u03c5\u03c6\7h\2\2\u03c6\u03c7\7a\2\2\u03c7\u03c8"+
+
"\7{\2\2\u03c8\u03c9\7g\2\2\u03c9\u03ca\7c\2\2\u03ca\u03d6\7t\2\2\u03cb"+
+
"\u03cc\7s\2\2\u03cc\u03cd\7w\2\2\u03cd\u03ce\7c\2\2\u03ce\u03cf\7t\2\2"+
+
"\u03cf\u03d0\7v\2\2\u03d0\u03d1\7g\2\2\u03d1\u03d6\7t\2\2\u03d2\u03d3"+
+
"\7p\2\2\u03d3\u03d4\7q\2\2\u03d4\u03d6\7y\2\2\u03d5\u0092\3\2\2\2\u03d5"+
+
"\u009c\3\2\2\2\u03d5\u00a5\3\2\2\2\u03d5\u00af\3\2\2\2\u03d5\u00ba\3\2"+
+
"\2\2\u03d5\u00c2\3\2\2\2\u03d5\u00cb\3\2\2\2\u03d5\u00d7\3\2\2\2\u03d5"+
+
"\u00df\3\2\2\2\u03d5\u00e8\3\2\2\2\u03d5\u00f1\3\2\2\2\u03d5\u00f5\3\2"+
+
"\2\2\u03d5\u00f7\3\2\2\2\u03d5\u00f9\3\2\2\2\u03d5\u00fd\3\2\2\2\u03d5"+
+
"\u0101\3\2\2\2\u03d5\u0106\3\2\2\2\u03d5\u010f\3\2\2\2\u03d5\u0115\3\2"+
+
"\2\2\u03d5\u011b\3\2\2\2\u03d5\u0120\3\2\2\2\u03d5\u0127\3\2\2\2\u03d5"+
+
"\u0130\3\2\2\2\u03d5\u0137\3\2\2\2\u03d5\u013d\3\2\2\2\u03d5\u0149\3\2"+
+
"\2\2\u03d5\u0153\3\2\2\2\u03d5\u015b\3\2\2\2\u03d5\u0164\3\2\2\2\u03d5"+
+
"\u016b\3\2\2\2\u03d5\u0175\3\2\2\2\u03d5\u017f\3\2\2\2\u03d5\u0189\3\2"+
+
"\2\2\u03d5\u0193\3\2\2\2\u03d5\u01a5\3\2\2\2\u03d5\u01ac\3\2\2\2\u03d5"+
+
"\u01b5\3\2\2\2\u03d5\u01c1\3\2\2\2\u03d5\u01cd\3\2\2\2\u03d5\u01d8\3\2"+
+
"\2\2\u03d5\u01e1\3\2\2\2\u03d5\u01ea\3\2\2\2\u03d5\u01f7\3\2\2\2\u03d5"+
+
"\u01fb\3\2\2\2\u03d5\u0200\3\2\2\2\u03d5\u0209\3\2\2\2\u03d5\u0212\3\2"+
+
"\2\2\u03d5\u021a\3\2\2\2\u03d5\u0225\3\2\2\2\u03d5\u0232\3\2\2\2\u03d5"+
+
"\u0238\3\2\2\2\u03d5\u0243\3\2\2\2\u03d5\u0250\3\2\2\2\u03d5\u0260\3\2"+
+
"\2\2\u03d5\u0269\3\2\2\2\u03d5\u026f\3\2\2\2\u03d5\u0274\3\2\2\2\u03d5"+
+
"\u027b\3\2\2\2\u03d5\u0280\3\2\2\2\u03d5\u028a\3\2\2\2\u03d5\u0291\3\2"+
+
"\2\2\u03d5\u0294\3\2\2\2\u03d5\u0298\3\2\2\2\u03d5\u029d\3\2\2\2\u03d5"+
+
"\u02a1\3\2\2\2\u03d5\u02a6\3\2\2\2\u03d5\u02ac\3\2\2\2\u03d5\u02b0\3\2"+
+
"\2\2\u03d5\u02b4\3\2\2\2\u03d5\u02b6\3\2\2\2\u03d5\u02bb\3\2\2\2\u03d5"+
+
"\u02bf\3\2\2\2\u03d5\u02c3\3\2\2\2\u03d5\u02c7\3\2\2\2\u03d5\u02ca\3\2"+
+
"\2\2\u03d5\u02cd\3\2\2\2\u03d5\u02d0\3\2\2\2\u03d5\u02d4\3\2\2\2\u03d5"+
+
"\u02d8\3\2\2\2\u03d5\u02dc\3\2\2\2\u03d5\u02e0\3\2\2\2\u03d5\u02e7\3\2"+
+
"\2\2\u03d5\u02ee\3\2\2\2\u03d5\u02f1\3\2\2\2\u03d5\u02f6\3\2\2\2\u03d5"+
+
"\u02fb\3\2\2\2\u03d5\u02fe\3\2\2\2\u03d5\u0303\3\2\2\2\u03d5\u0308\3\2"+
+
"\2\2\u03d5\u030b\3\2\2\2\u03d5\u030f\3\2\2\2\u03d5\u0315\3\2\2\2\u03d5"+
+
"\u0319\3\2\2\2\u03d5\u031c\3\2\2\2\u03d5\u031f\3\2\2\2\u03d5\u0324\3\2"+
+
"\2\2\u03d5\u0328\3\2\2\2\u03d5\u032c\3\2\2\2\u03d5\u0332\3\2\2\2\u03d5"+
+
"\u0338\3\2\2\2\u03d5\u033d\3\2\2\2\u03d5\u0341\3\2\2\2\u03d5\u0345\3\2"+
+
"\2\2\u03d5\u034c\3\2\2\2\u03d5\u0354\3\2\2\2\u03d5\u035d\3\2\2\2\u03d5"+
+
"\u0366\3\2\2\2\u03d5\u0369\3\2\2\2\u03d5\u036c\3\2\2\2\u03d5\u036f\3\2"+
+
"\2\2\u03d5\u0374\3\2\2\2\u03d5\u0377\3\2\2\2\u03d5\u037b\3\2\2\2\u03d5"+
+
"\u0380\3\2\2\2\u03d5\u038c\3\2\2\2\u03d5\u0397\3\2\2\2\u03d5\u03a2\3\2"+
+
"\2\2\u03d5\u03a6\3\2\2\2\u03d5\u03ac\3\2\2\2\u03d5\u03b2\3\2\2\2\u03d5"+
+
"\u03bf\3\2\2\2\u03d5\u03cb\3\2\2\2\u03d5\u03d2\3\2\2\2\u03d6\20\3\2\2"+
+
"\2\u03d7\u03d8\7h\2\2\u03d8\u03d9\7t\2\2\u03d9\u03da\7c\2\2\u03da\u03db"+
+
"\7i\2\2\u03db\u03dc\7o\2\2\u03dc\u03dd\7g\2\2\u03dd\u03de\7p\2\2\u03de"+
+
"\u03df\7v\2\2\u03df\22\3\2\2\2\u03e0\u03e6\5\67\34\2\u03e1\u03e5\n\2\2"+
+
"\2\u03e2\u03e3\7^\2\2\u03e3\u03e5\7)\2\2\u03e4\u03e1\3\2\2\2\u03e4\u03e2"+
+
"\3\2\2\2\u03e5\u03e8\3\2\2\2\u03e6\u03e4\3\2\2\2\u03e6\u03e7\3\2\2\2\u03e7"+
+
"\u03e9\3\2\2\2\u03e8\u03e6\3\2\2\2\u03e9\u03ea\5\67\34\2\u03ea\24\3\2"+
+
"\2\2\u03eb\u03f1\59\35\2\u03ec\u03f0\n\3\2\2\u03ed\u03ee\7^\2\2\u03ee"+
+
"\u03f0\7$\2\2\u03ef\u03ec\3\2\2\2\u03ef\u03ed\3\2\2\2\u03f0\u03f3\3\2"+
+
"\2\2\u03f1\u03ef\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2\u03f4\3\2\2\2\u03f3"+
+
"\u03f1\3\2\2\2\u03f4\u03f5\59\35\2\u03f5\26\3\2\2\2\u03f6\u03f7\7v\2\2"+
+
"\u03f7\u03f8\7t\2\2\u03f8\u03f9\7w\2\2\u03f9\u0400\7g\2\2\u03fa\u03fb"+
+
"\7h\2\2\u03fb\u03fc\7c\2\2\u03fc\u03fd\7n\2\2\u03fd\u03fe\7u\2\2\u03fe"+
+
"\u0400\7g\2\2\u03ff\u03f6\3\2\2\2\u03ff\u03fa\3\2\2\2\u0400\30\3\2\2\2"+
+
"\u0401\u0402\7p\2\2\u0402\u0403\7w\2\2\u0403\u0404\7n\2\2\u0404\u0405"+
+
"\7n\2\2\u0405\32\3\2\2\2\u0406\u0407\7?\2\2\u0407\u0408\7?\2\2\u0408\34"+
+
"\3\2\2\2\u0409\u040a\7#\2\2\u040a\u040b\7?\2\2\u040b\36\3\2\2\2\u040c"+
+ "\u040d\7@\2\2\u040d\u040e\7?\2\2\u040e
\3\2\2\2\u040f\u0410\7>\2\2\u0410"+
+
"\u0411\7?\2\2\u0411\"\3\2\2\2\u0412\u0413\7@\2\2\u0413$\3\2\2\2\u0414"+
+
"\u0415\7>\2\2\u0415&\3\2\2\2\u0416\u0417\7(\2\2\u0417\u0418\7(\2\2\u0418"+
+
"(\3\2\2\2\u0419\u041a\7~\2\2\u041a\u041b\7~\2\2\u041b*\3\2\2\2\u041c\u041d"+
+
"\7~\2\2\u041d,\3\2\2\2\u041e\u041f\7#\2\2\u041f.\3\2\2\2\u0420\u0421\7"+
+
"*\2\2\u0421\60\3\2\2\2\u0422\u0423\7+\2\2\u0423\62\3\2\2\2\u0424\u0425"+
+
"\7}\2\2\u0425\64\3\2\2\2\u0426\u0427\7\177\2\2\u0427\66\3\2\2\2\u0428"+
+
"\u0429\7)\2\2\u04298\3\2\2\2\u042a\u042b\7$\2\2\u042b:\3\2\2\2\u042c\u042d"+
+
"\7\u0080\2\2\u042d<\3\2\2\2\u042e\u042f\7]\2\2\u042f>\3\2\2\2\u0430\u0431"+
+
"\7_\2\2\u0431@\3\2\2\2\u0432\u0433\7%\2\2\u0433B\3\2\2\2\u0434\u0435\7"+
+
".\2\2\u0435D\3\2\2\2\u0436\u0437\7<\2\2\u0437F\3\2\2\2\u0438\u0439\7/"+
+
"\2\2\u0439H\3\2\2\2\u043a\u043b\7\60\2\2\u043bJ\3\2\2\2\u043c\u043d\7"+
+
"a\2\2\u043dL\3\2\2\2\u043e\u043f\7?\2\2\u043fN\3\2\2\2\u0440\u0441\7-"+
+
"\2\2\u0441P\3\2\2\2\u0442\u0443\7A\2\2\u0443R\3\2\2\2\u0444\u0445\7,\2"+
+
"\2\u0445T\3\2\2\2\u0446\u0447\7\61\2\2\u0447V\3\2\2\2\u0448\u0449\7\'"+
+
"\2\2\u0449X\3\2\2\2\u044a\u044b\7&\2\2\u044bZ\3\2\2\2\u044c\u0455\7\62"+
+
"\2\2\u044d\u0451\t\4\2\2\u044e\u0450\t\5\2\2\u044f\u044e\3\2\2\2\u0450"+
+
"\u0453\3\2\2\2\u0451\u044f\3\2\2\2\u0451\u0452\3\2\2\2\u0452\u0455\3\2"+
+
"\2\2\u0453\u0451\3\2\2\2\u0454\u044c\3\2\2\2\u0454\u044d\3\2\2\2\u0455"+
+
"\\\3\2\2\2\u0456\u0458\5I%\2\u0457\u0459\t\6\2\2\u0458\u0457\3\2\2\2\u0459"+
+
"\u045a\3\2\2\2\u045a\u0458\3\2\2\2\u045a\u045b\3\2\2\2\u045b^\3\2\2\2"+
+
"\u045c\u045e\t\7\2\2\u045d\u045f\t\b\2\2\u045e\u045d\3\2\2\2\u045e\u045f"+
+
"\3\2\2\2\u045f\u0460\3\2\2\2\u0460\u0461\5[.\2\u0461`\3\2\2\2\u0462\u0463"+
+
"\t\t\2\2\u0463b\3\2\2\2\u0464\u0465\t\n\2\2\u0465d\3\2\2\2\u0466\u046b"+
+
"\5a\61\2\u0467\u046b\5K&\2\u0468\u046b\5c\62\2\u0469\u046b\5Y-\2\u046a"+
+
"\u0466\3\2\2\2\u046a\u0467\3\2\2\2\u046a\u0468\3\2\2\2\u046a\u0469\3\2"+
+
"\2\2\u046b\u046c\3\2\2\2\u046c\u046a\3\2\2\2\u046c\u046d\3\2\2\2\u046d"+
+
"\u0477\3\2\2\2\u046e\u0476\5a\61\2\u046f\u0476\5Y-\2\u0470\u0476\5c\62"+
+
"\2\u0471\u0476\t\6\2\2\u0472\u0476\5E#\2\u0473\u0476\5G$\2\u0474\u0476"+
+
"\5K&\2\u0475\u046e\3\2\2\2\u0475\u046f\3\2\2\2\u0475\u0470\3\2\2\2\u0475"+
+
"\u0471\3\2\2\2\u0475\u0472\3\2\2\2\u0475\u0473\3\2\2\2\u0475\u0474\3\2"+
+
"\2\2\u0476\u0479\3\2\2\2\u0477\u0475\3\2\2\2\u0477\u0478\3\2\2\2\u0478"+
+
"f\3\2\2\2\u0479\u0477\3\2\2\2\u047a\u047b\7\61\2\2\u047b\u047c\7\61\2"+
+
"\2\u047c\u0480\3\2\2\2\u047d\u047f\n\13\2\2\u047e\u047d\3\2\2\2\u047f"+
+
"\u0482\3\2\2\2\u0480\u047e\3\2\2\2\u0480\u0481\3\2\2\2\u0481\u0484\3\2"+
+
"\2\2\u0482\u0480\3\2\2\2\u0483\u0485\7\17\2\2\u0484\u0483\3\2\2\2\u0484"+
+
"\u0485\3\2\2\2\u0485\u0487\3\2\2\2\u0486\u0488\t\f\2\2\u0487\u0486\3\2"+
+
"\2\2\u0488\u0495\3\2\2\2\u0489\u048a\7\61\2\2\u048a\u048b\7,\2\2\u048b"+
+
"\u048f\3\2\2\2\u048c\u048e\13\2\2\2\u048d\u048c\3\2\2\2\u048e\u0491\3"+
+
"\2\2\2\u048f\u0490\3\2\2\2\u048f\u048d\3\2\2\2\u0490\u0492\3\2\2\2\u0491"+
+
"\u048f\3\2\2\2\u0492\u0493\7,\2\2\u0493\u0495\7\61\2\2\u0494\u047a\3\2"+
+
"\2\2\u0494\u0489\3\2\2\2\u0495\u0496\3\2\2\2\u0496\u0497\b\64\2\2\u0497"+
+
"h\3\2\2\2\u0498\u049a\t\r\2\2\u0499\u0498\3\2\2\2\u049a\u049b\3\2\2\2"+
+
"\u049b\u0499\3\2\2\2\u049b\u049c\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e"+
+
"\b\65\2\2\u049ej\3\2\2\2\u049f\u04a0\13\2\2\2\u04a0l\3\2\2\2\27\2\u03d5"+
+
"\u03e4\u03e6\u03ef\u03f1\u03ff\u0451\u0454\u045a\u045e\u046a\u046c\u0475"+
+ "\u0477\u0480\u0484\u0487\u048f\u0494\u049b\3\b\2\2";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslListener.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslListener.java
index a9fb157..30eec9c 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslListener.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslListener.java
@@ -1,4 +1,4 @@
-// Generated from C:/Users/Nikita
Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4\NCIntentDsl.g4
by ANTLR 4.9.1
+// Generated from
/Users/nivanov/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDsl.g4
by ANTLR 4.9.1
package org.apache.nlpcraft.model.intent.compiler.antlr4;
import org.antlr.v4.runtime.tree.ParseTreeListener;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslParser.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslParser.java
index cd7bcf7..7ad4210 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslParser.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDslParser.java
@@ -1,4 +1,4 @@
-// Generated from C:/Users/Nikita
Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4\NCIntentDsl.g4
by ANTLR 4.9.1
+// Generated from
/Users/nivanov/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/antlr4/NCIntentDsl.g4
by ANTLR 4.9.1
package org.apache.nlpcraft.model.intent.compiler.antlr4;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
@@ -134,11 +134,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitDsl(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitDsl(this);
- else return visitor.visitChildren(this);
- }
}
public final DslContext dsl() throws RecognitionException {
@@ -186,11 +181,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitSynonym(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitSynonym(this);
- else return visitor.visitChildren(this);
- }
}
public final SynonymContext synonym() throws RecognitionException {
@@ -249,11 +239,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitAlias(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitAlias(this);
- else return visitor.visitChildren(this);
- }
}
public final AliasContext alias() throws RecognitionException {
@@ -300,11 +285,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitDslItems(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitDslItems(this);
- else return visitor.visitChildren(this);
- }
}
public final DslItemsContext dslItems() throws RecognitionException {
@@ -384,11 +364,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitDslItem(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitDslItem(this);
- else return visitor.visitChildren(this);
- }
}
public final DslItemContext dslItem() throws RecognitionException {
@@ -452,11 +427,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitImp(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitImp(this);
- else return visitor.visitChildren(this);
- }
}
public final ImpContext imp() throws RecognitionException {
@@ -505,11 +475,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitFrag(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitFrag(this);
- else return visitor.visitChildren(this);
- }
}
public final FragContext frag() throws RecognitionException {
@@ -553,11 +518,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitFragId(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitFragId(this);
- else return visitor.visitChildren(this);
- }
}
public final FragIdContext fragId() throws RecognitionException {
@@ -607,11 +567,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitFragRef(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitFragRef(this);
- else return visitor.visitChildren(this);
- }
}
public final FragRefContext fragRef() throws RecognitionException {
@@ -669,11 +624,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitFragMeta(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitFragMeta(this);
- else return visitor.visitChildren(this);
- }
}
public final FragMetaContext fragMeta() throws RecognitionException {
@@ -727,11 +677,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitIntent(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitIntent(this);
- else return visitor.visitChildren(this);
- }
}
public final IntentContext intent() throws RecognitionException {
@@ -805,11 +750,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitIntentId(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitIntentId(this);
- else return visitor.visitChildren(this);
- }
}
public final IntentIdContext intentId() throws RecognitionException {
@@ -852,11 +792,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitOrderedDecl(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitOrderedDecl(this);
- else return visitor.visitChildren(this);
- }
}
public final OrderedDeclContext orderedDecl() throws
RecognitionException {
@@ -904,11 +839,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitMtdDecl(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitMtdDecl(this);
- else return visitor.visitChildren(this);
- }
}
public final MtdDeclContext mtdDecl() throws RecognitionException {
@@ -956,11 +886,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitFlowDecl(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitFlowDecl(this);
- else return visitor.visitChildren(this);
- }
}
public final FlowDeclContext flowDecl() throws RecognitionException {
@@ -1022,11 +947,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitMetaDecl(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitMetaDecl(this);
- else return visitor.visitChildren(this);
- }
}
public final MetaDeclContext metaDecl() throws RecognitionException {
@@ -1079,11 +999,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitJsonObj(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitJsonObj(this);
- else return visitor.visitChildren(this);
- }
}
public final JsonObjContext jsonObj() throws RecognitionException {
@@ -1163,11 +1078,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitJsonPair(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitJsonPair(this);
- else return visitor.visitChildren(this);
- }
}
public final JsonPairContext jsonPair() throws RecognitionException {
@@ -1223,11 +1133,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitJsonVal(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitJsonVal(this);
- else return visitor.visitChildren(this);
- }
}
public final JsonValContext jsonVal() throws RecognitionException {
@@ -1352,11 +1257,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitJsonArr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitJsonArr(this);
- else return visitor.visitChildren(this);
- }
}
public final JsonArrContext jsonArr() throws RecognitionException {
@@ -1435,11 +1335,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitTerms(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitTerms(this);
- else return visitor.visitChildren(this);
- }
}
public final TermsContext terms() throws RecognitionException {
@@ -1516,11 +1411,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitTermItem(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitTermItem(this);
- else return visitor.visitChildren(this);
- }
}
public final TermItemContext termItem() throws RecognitionException {
@@ -1574,11 +1464,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitTermEq(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitTermEq(this);
- else return visitor.visitChildren(this);
- }
}
public final TermEqContext termEq() throws RecognitionException {
@@ -1641,11 +1526,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitTerm(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitTerm(this);
- else return visitor.visitChildren(this);
- }
}
public final TermContext term() throws RecognitionException {
@@ -1736,11 +1616,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitMtdRef(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitMtdRef(this);
- else return visitor.visitChildren(this);
- }
}
public final MtdRefContext mtdRef() throws RecognitionException {
@@ -1797,11 +1672,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitJavaFqn(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitJavaFqn(this);
- else return visitor.visitChildren(this);
- }
}
public final JavaFqnContext javaFqn() throws RecognitionException {
@@ -1879,11 +1749,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitTermId(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitTermId(this);
- else return visitor.visitChildren(this);
- }
}
public final TermIdContext termId() throws RecognitionException {
@@ -1937,11 +1802,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitParExpr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitParExpr(this);
- else return visitor.visitChildren(this);
- }
}
public static class UnaryExprContext extends ExprContext {
public Token op;
@@ -1959,11 +1819,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitUnaryExpr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitUnaryExpr(this);
- else return visitor.visitChildren(this);
- }
}
public static class CompExprContext extends ExprContext {
public Token op;
@@ -1986,11 +1841,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitCompExpr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitCompExpr(this);
- else return visitor.visitChildren(this);
- }
}
public static class PlusMinusExprContext extends ExprContext {
public Token op;
@@ -2011,11 +1861,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitPlusMinusExpr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitPlusMinusExpr(this);
- else return visitor.visitChildren(this);
- }
}
public static class AtomExprContext extends ExprContext {
public AtomContext atom() {
@@ -2030,11 +1875,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitAtomExpr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitAtomExpr(this);
- else return visitor.visitChildren(this);
- }
}
public static class MultDivModExprContext extends ExprContext {
public Token op;
@@ -2056,11 +1896,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitMultDivModExpr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitMultDivModExpr(this);
- else return visitor.visitChildren(this);
- }
}
public static class AndOrExprContext extends ExprContext {
public Token op;
@@ -2081,11 +1916,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitAndOrExpr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitAndOrExpr(this);
- else return visitor.visitChildren(this);
- }
}
public static class CallExprContext extends ExprContext {
public TerminalNode FUN_NAME() { return
getToken(NCIntentDslParser.FUN_NAME, 0); }
@@ -2103,11 +1933,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitCallExpr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitCallExpr(this);
- else return visitor.visitChildren(this);
- }
}
public static class EqNeqExprContext extends ExprContext {
public Token op;
@@ -2128,11 +1953,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitEqNeqExpr(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitEqNeqExpr(this);
- else return visitor.visitChildren(this);
- }
}
public final ExprContext expr() throws RecognitionException {
@@ -2385,11 +2205,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitParamList(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitParamList(this);
- else return visitor.visitChildren(this);
- }
}
public final ParamListContext paramList() throws RecognitionException {
@@ -2470,11 +2285,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitAtom(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitAtom(this);
- else return visitor.visitChildren(this);
- }
}
public final AtomContext atom() throws RecognitionException {
@@ -2563,11 +2373,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitQstring(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitQstring(this);
- else return visitor.visitChildren(this);
- }
}
public final QstringContext qstring() throws RecognitionException {
@@ -2619,11 +2424,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitMinMax(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitMinMax(this);
- else return visitor.visitChildren(this);
- }
}
public final MinMaxContext minMax() throws RecognitionException {
@@ -2680,11 +2480,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitMinMaxShortcut(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitMinMaxShortcut(this);
- else return visitor.visitChildren(this);
- }
}
public final MinMaxShortcutContext minMaxShortcut() throws
RecognitionException {
@@ -2737,11 +2532,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitMinMaxRange(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitMinMaxRange(this);
- else return visitor.visitChildren(this);
- }
}
public final MinMaxRangeContext minMaxRange() throws
RecognitionException {
@@ -2788,11 +2578,6 @@ public class NCIntentDslParser extends Parser {
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof NCIntentDslListener )
((NCIntentDslListener)listener).exitId(this);
}
- @Override
- public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
- if ( visitor instanceof NCIntentDslVisitor ) return
((NCIntentDslVisitor<? extends T>)visitor).visitId(this);
- else return visitor.visitChildren(this);
- }
}
public final IdContext id() throws RecognitionException {