c-next 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +726 -0
  2. package/bin/cnext.js +5 -0
  3. package/grammar/C.g4 +1112 -0
  4. package/grammar/CNext.g4 +817 -0
  5. package/grammar/CPP14Lexer.g4 +282 -0
  6. package/grammar/CPP14Parser.g4 +1072 -0
  7. package/package.json +85 -0
  8. package/src/analysis/DivisionByZeroAnalyzer.ts +378 -0
  9. package/src/analysis/FunctionCallAnalyzer.ts +526 -0
  10. package/src/analysis/InitializationAnalyzer.ts +725 -0
  11. package/src/analysis/NullCheckAnalyzer.ts +427 -0
  12. package/src/analysis/types/IDivisionByZeroError.ts +25 -0
  13. package/src/analysis/types/IFunctionCallError.ts +17 -0
  14. package/src/analysis/types/IInitializationError.ts +55 -0
  15. package/src/analysis/types/INullCheckError.ts +25 -0
  16. package/src/codegen/CodeGenerator.ts +7945 -0
  17. package/src/codegen/CommentExtractor.ts +240 -0
  18. package/src/codegen/CommentFormatter.ts +155 -0
  19. package/src/codegen/HeaderGenerator.ts +265 -0
  20. package/src/codegen/TypeResolver.ts +365 -0
  21. package/src/codegen/types/ECommentType.ts +10 -0
  22. package/src/codegen/types/IComment.ts +21 -0
  23. package/src/codegen/types/ICommentError.ts +15 -0
  24. package/src/codegen/types/TOverflowBehavior.ts +6 -0
  25. package/src/codegen/types/TParameterInfo.ts +13 -0
  26. package/src/codegen/types/TTypeConstants.ts +94 -0
  27. package/src/codegen/types/TTypeInfo.ts +22 -0
  28. package/src/index.ts +518 -0
  29. package/src/lib/IncludeDiscovery.ts +131 -0
  30. package/src/lib/InputExpansion.ts +121 -0
  31. package/src/lib/PlatformIODetector.ts +162 -0
  32. package/src/lib/transpiler.ts +439 -0
  33. package/src/lib/types/ITranspileResult.ts +80 -0
  34. package/src/parser/c/grammar/C.interp +338 -0
  35. package/src/parser/c/grammar/C.tokens +229 -0
  36. package/src/parser/c/grammar/CLexer.interp +415 -0
  37. package/src/parser/c/grammar/CLexer.tokens +229 -0
  38. package/src/parser/c/grammar/CLexer.ts +750 -0
  39. package/src/parser/c/grammar/CListener.ts +976 -0
  40. package/src/parser/c/grammar/CParser.ts +9663 -0
  41. package/src/parser/c/grammar/CVisitor.ts +626 -0
  42. package/src/parser/cpp/grammar/CPP14Lexer.interp +478 -0
  43. package/src/parser/cpp/grammar/CPP14Lexer.tokens +264 -0
  44. package/src/parser/cpp/grammar/CPP14Lexer.ts +848 -0
  45. package/src/parser/cpp/grammar/CPP14Parser.interp +492 -0
  46. package/src/parser/cpp/grammar/CPP14Parser.tokens +264 -0
  47. package/src/parser/cpp/grammar/CPP14Parser.ts +19961 -0
  48. package/src/parser/cpp/grammar/CPP14ParserListener.ts +2120 -0
  49. package/src/parser/cpp/grammar/CPP14ParserVisitor.ts +1354 -0
  50. package/src/parser/grammar/CNext.interp +340 -0
  51. package/src/parser/grammar/CNext.tokens +214 -0
  52. package/src/parser/grammar/CNextLexer.interp +374 -0
  53. package/src/parser/grammar/CNextLexer.tokens +214 -0
  54. package/src/parser/grammar/CNextLexer.ts +668 -0
  55. package/src/parser/grammar/CNextListener.ts +1020 -0
  56. package/src/parser/grammar/CNextParser.ts +9239 -0
  57. package/src/parser/grammar/CNextVisitor.ts +654 -0
  58. package/src/preprocessor/Preprocessor.ts +301 -0
  59. package/src/preprocessor/ToolchainDetector.ts +225 -0
  60. package/src/preprocessor/types/IPreprocessResult.ts +39 -0
  61. package/src/preprocessor/types/IToolchain.ts +27 -0
  62. package/src/project/FileDiscovery.ts +236 -0
  63. package/src/project/Project.ts +425 -0
  64. package/src/project/types/IProjectConfig.ts +64 -0
  65. package/src/symbols/CNextSymbolCollector.ts +326 -0
  66. package/src/symbols/CSymbolCollector.ts +457 -0
  67. package/src/symbols/CppSymbolCollector.ts +362 -0
  68. package/src/symbols/SymbolTable.ts +312 -0
  69. package/src/symbols/types/IConflict.ts +20 -0
  70. package/src/types/ESourceLanguage.ts +10 -0
  71. package/src/types/ESymbolKind.ts +20 -0
  72. package/src/types/ISymbol.ts +45 -0
@@ -0,0 +1,750 @@
1
+ // Generated from grammar/C.g4 by ANTLR 4.13.1
2
+
3
+ import * as antlr from "antlr4ng";
4
+ import { Token } from "antlr4ng";
5
+
6
+
7
+ export class CLexer extends antlr.Lexer {
8
+ public static readonly T__0 = 1;
9
+ public static readonly T__1 = 2;
10
+ public static readonly T__2 = 3;
11
+ public static readonly T__3 = 4;
12
+ public static readonly T__4 = 5;
13
+ public static readonly T__5 = 6;
14
+ public static readonly T__6 = 7;
15
+ public static readonly T__7 = 8;
16
+ public static readonly T__8 = 9;
17
+ public static readonly T__9 = 10;
18
+ public static readonly T__10 = 11;
19
+ public static readonly T__11 = 12;
20
+ public static readonly T__12 = 13;
21
+ public static readonly T__13 = 14;
22
+ public static readonly T__14 = 15;
23
+ public static readonly T__15 = 16;
24
+ public static readonly T__16 = 17;
25
+ public static readonly T__17 = 18;
26
+ public static readonly T__18 = 19;
27
+ public static readonly Auto = 20;
28
+ public static readonly Break = 21;
29
+ public static readonly Case = 22;
30
+ public static readonly Char = 23;
31
+ public static readonly Const = 24;
32
+ public static readonly Continue = 25;
33
+ public static readonly Default = 26;
34
+ public static readonly Do = 27;
35
+ public static readonly Double = 28;
36
+ public static readonly Else = 29;
37
+ public static readonly Enum = 30;
38
+ public static readonly Extern = 31;
39
+ public static readonly Float = 32;
40
+ public static readonly For = 33;
41
+ public static readonly Goto = 34;
42
+ public static readonly If = 35;
43
+ public static readonly Inline = 36;
44
+ public static readonly Int = 37;
45
+ public static readonly Long = 38;
46
+ public static readonly Register = 39;
47
+ public static readonly Restrict = 40;
48
+ public static readonly Return = 41;
49
+ public static readonly Short = 42;
50
+ public static readonly Signed = 43;
51
+ public static readonly Sizeof = 44;
52
+ public static readonly Static = 45;
53
+ public static readonly Struct = 46;
54
+ public static readonly Switch = 47;
55
+ public static readonly Typedef = 48;
56
+ public static readonly Union = 49;
57
+ public static readonly Unsigned = 50;
58
+ public static readonly Void = 51;
59
+ public static readonly Volatile = 52;
60
+ public static readonly While = 53;
61
+ public static readonly Alignas = 54;
62
+ public static readonly Alignof = 55;
63
+ public static readonly Atomic = 56;
64
+ public static readonly Bool = 57;
65
+ public static readonly Complex = 58;
66
+ public static readonly Generic = 59;
67
+ public static readonly Imaginary = 60;
68
+ public static readonly Noreturn = 61;
69
+ public static readonly StaticAssert = 62;
70
+ public static readonly ThreadLocal = 63;
71
+ public static readonly LeftParen = 64;
72
+ public static readonly RightParen = 65;
73
+ public static readonly LeftBracket = 66;
74
+ public static readonly RightBracket = 67;
75
+ public static readonly LeftBrace = 68;
76
+ public static readonly RightBrace = 69;
77
+ public static readonly Less = 70;
78
+ public static readonly LessEqual = 71;
79
+ public static readonly Greater = 72;
80
+ public static readonly GreaterEqual = 73;
81
+ public static readonly LeftShift = 74;
82
+ public static readonly RightShift = 75;
83
+ public static readonly Plus = 76;
84
+ public static readonly PlusPlus = 77;
85
+ public static readonly Minus = 78;
86
+ public static readonly MinusMinus = 79;
87
+ public static readonly Star = 80;
88
+ public static readonly Div = 81;
89
+ public static readonly Mod = 82;
90
+ public static readonly And = 83;
91
+ public static readonly Or = 84;
92
+ public static readonly AndAnd = 85;
93
+ public static readonly OrOr = 86;
94
+ public static readonly Caret = 87;
95
+ public static readonly Not = 88;
96
+ public static readonly Tilde = 89;
97
+ public static readonly Question = 90;
98
+ public static readonly Colon = 91;
99
+ public static readonly Semi = 92;
100
+ public static readonly Comma = 93;
101
+ public static readonly Assign = 94;
102
+ public static readonly StarAssign = 95;
103
+ public static readonly DivAssign = 96;
104
+ public static readonly ModAssign = 97;
105
+ public static readonly PlusAssign = 98;
106
+ public static readonly MinusAssign = 99;
107
+ public static readonly LeftShiftAssign = 100;
108
+ public static readonly RightShiftAssign = 101;
109
+ public static readonly AndAssign = 102;
110
+ public static readonly XorAssign = 103;
111
+ public static readonly OrAssign = 104;
112
+ public static readonly Equal = 105;
113
+ public static readonly NotEqual = 106;
114
+ public static readonly Arrow = 107;
115
+ public static readonly Dot = 108;
116
+ public static readonly Ellipsis = 109;
117
+ public static readonly Identifier = 110;
118
+ public static readonly Constant = 111;
119
+ public static readonly DigitSequence = 112;
120
+ public static readonly StringLiteral = 113;
121
+ public static readonly MultiLineMacro = 114;
122
+ public static readonly Directive = 115;
123
+ public static readonly AsmBlock = 116;
124
+ public static readonly Whitespace = 117;
125
+ public static readonly Newline = 118;
126
+ public static readonly BlockComment = 119;
127
+ public static readonly LineComment = 120;
128
+
129
+ public static readonly channelNames = [
130
+ "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
131
+ ];
132
+
133
+ public static readonly literalNames = [
134
+ null, "'__extension__'", "'__builtin_va_arg'", "'__builtin_offsetof'",
135
+ "'__m128'", "'__m128d'", "'__m128i'", "'__typeof__'", "'__inline__'",
136
+ "'__stdcall'", "'__declspec'", "'__cdecl'", "'__clrcall'", "'__fastcall'",
137
+ "'__thiscall'", "'__vectorcall'", "'__asm'", "'__attribute__'",
138
+ "'__asm__'", "'__volatile__'", "'auto'", "'break'", "'case'", "'char'",
139
+ "'const'", "'continue'", "'default'", "'do'", "'double'", "'else'",
140
+ "'enum'", "'extern'", "'float'", "'for'", "'goto'", "'if'", "'inline'",
141
+ "'int'", "'long'", "'register'", "'restrict'", "'return'", "'short'",
142
+ "'signed'", "'sizeof'", "'static'", "'struct'", "'switch'", "'typedef'",
143
+ "'union'", "'unsigned'", "'void'", "'volatile'", "'while'", "'_Alignas'",
144
+ "'_Alignof'", "'_Atomic'", "'_Bool'", "'_Complex'", "'_Generic'",
145
+ "'_Imaginary'", "'_Noreturn'", "'_Static_assert'", "'_Thread_local'",
146
+ "'('", "')'", "'['", "']'", "'{'", "'}'", "'<'", "'<='", "'>'",
147
+ "'>='", "'<<'", "'>>'", "'+'", "'++'", "'-'", "'--'", "'*'", "'/'",
148
+ "'%'", "'&'", "'|'", "'&&'", "'||'", "'^'", "'!'", "'~'", "'?'",
149
+ "':'", "';'", "','", "'='", "'*='", "'/='", "'%='", "'+='", "'-='",
150
+ "'<<='", "'>>='", "'&='", "'^='", "'|='", "'=='", "'!='", "'->'",
151
+ "'.'", "'...'"
152
+ ];
153
+
154
+ public static readonly symbolicNames = [
155
+ null, null, null, null, null, null, null, null, null, null, null,
156
+ null, null, null, null, null, null, null, null, null, "Auto", "Break",
157
+ "Case", "Char", "Const", "Continue", "Default", "Do", "Double",
158
+ "Else", "Enum", "Extern", "Float", "For", "Goto", "If", "Inline",
159
+ "Int", "Long", "Register", "Restrict", "Return", "Short", "Signed",
160
+ "Sizeof", "Static", "Struct", "Switch", "Typedef", "Union", "Unsigned",
161
+ "Void", "Volatile", "While", "Alignas", "Alignof", "Atomic", "Bool",
162
+ "Complex", "Generic", "Imaginary", "Noreturn", "StaticAssert", "ThreadLocal",
163
+ "LeftParen", "RightParen", "LeftBracket", "RightBracket", "LeftBrace",
164
+ "RightBrace", "Less", "LessEqual", "Greater", "GreaterEqual", "LeftShift",
165
+ "RightShift", "Plus", "PlusPlus", "Minus", "MinusMinus", "Star",
166
+ "Div", "Mod", "And", "Or", "AndAnd", "OrOr", "Caret", "Not", "Tilde",
167
+ "Question", "Colon", "Semi", "Comma", "Assign", "StarAssign", "DivAssign",
168
+ "ModAssign", "PlusAssign", "MinusAssign", "LeftShiftAssign", "RightShiftAssign",
169
+ "AndAssign", "XorAssign", "OrAssign", "Equal", "NotEqual", "Arrow",
170
+ "Dot", "Ellipsis", "Identifier", "Constant", "DigitSequence", "StringLiteral",
171
+ "MultiLineMacro", "Directive", "AsmBlock", "Whitespace", "Newline",
172
+ "BlockComment", "LineComment"
173
+ ];
174
+
175
+ public static readonly modeNames = [
176
+ "DEFAULT_MODE",
177
+ ];
178
+
179
+ public static readonly ruleNames = [
180
+ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7",
181
+ "T__8", "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15",
182
+ "T__16", "T__17", "T__18", "Auto", "Break", "Case", "Char", "Const",
183
+ "Continue", "Default", "Do", "Double", "Else", "Enum", "Extern",
184
+ "Float", "For", "Goto", "If", "Inline", "Int", "Long", "Register",
185
+ "Restrict", "Return", "Short", "Signed", "Sizeof", "Static", "Struct",
186
+ "Switch", "Typedef", "Union", "Unsigned", "Void", "Volatile", "While",
187
+ "Alignas", "Alignof", "Atomic", "Bool", "Complex", "Generic", "Imaginary",
188
+ "Noreturn", "StaticAssert", "ThreadLocal", "LeftParen", "RightParen",
189
+ "LeftBracket", "RightBracket", "LeftBrace", "RightBrace", "Less",
190
+ "LessEqual", "Greater", "GreaterEqual", "LeftShift", "RightShift",
191
+ "Plus", "PlusPlus", "Minus", "MinusMinus", "Star", "Div", "Mod",
192
+ "And", "Or", "AndAnd", "OrOr", "Caret", "Not", "Tilde", "Question",
193
+ "Colon", "Semi", "Comma", "Assign", "StarAssign", "DivAssign", "ModAssign",
194
+ "PlusAssign", "MinusAssign", "LeftShiftAssign", "RightShiftAssign",
195
+ "AndAssign", "XorAssign", "OrAssign", "Equal", "NotEqual", "Arrow",
196
+ "Dot", "Ellipsis", "Identifier", "IdentifierNondigit", "Nondigit",
197
+ "Digit", "UniversalCharacterName", "HexQuad", "Constant", "IntegerConstant",
198
+ "BinaryConstant", "DecimalConstant", "OctalConstant", "HexadecimalConstant",
199
+ "HexadecimalPrefix", "NonzeroDigit", "OctalDigit", "HexadecimalDigit",
200
+ "IntegerSuffix", "UnsignedSuffix", "LongSuffix", "LongLongSuffix",
201
+ "FloatingConstant", "DecimalFloatingConstant", "HexadecimalFloatingConstant",
202
+ "FractionalConstant", "ExponentPart", "Sign", "DigitSequence", "HexadecimalFractionalConstant",
203
+ "BinaryExponentPart", "HexadecimalDigitSequence", "FloatingSuffix",
204
+ "CharacterConstant", "CCharSequence", "CChar", "EscapeSequence",
205
+ "SimpleEscapeSequence", "OctalEscapeSequence", "HexadecimalEscapeSequence",
206
+ "StringLiteral", "EncodingPrefix", "SCharSequence", "SChar", "MultiLineMacro",
207
+ "Directive", "AsmBlock", "Whitespace", "Newline", "BlockComment",
208
+ "LineComment",
209
+ ];
210
+
211
+
212
+ public constructor(input: antlr.CharStream) {
213
+ super(input);
214
+ this.interpreter = new antlr.LexerATNSimulator(this, CLexer._ATN, CLexer.decisionsToDFA, new antlr.PredictionContextCache());
215
+ }
216
+
217
+ public get grammarFileName(): string { return "C.g4"; }
218
+
219
+ public get literalNames(): (string | null)[] { return CLexer.literalNames; }
220
+ public get symbolicNames(): (string | null)[] { return CLexer.symbolicNames; }
221
+ public get ruleNames(): string[] { return CLexer.ruleNames; }
222
+
223
+ public get serializedATN(): number[] { return CLexer._serializedATN; }
224
+
225
+ public get channelNames(): string[] { return CLexer.channelNames; }
226
+
227
+ public get modeNames(): string[] { return CLexer.modeNames; }
228
+
229
+ public static readonly _serializedATN: number[] = [
230
+ 4,0,120,1327,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,
231
+ 5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,
232
+ 2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,
233
+ 7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,
234
+ 2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,
235
+ 7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,
236
+ 2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,
237
+ 7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,
238
+ 2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,
239
+ 7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,
240
+ 2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,
241
+ 7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,
242
+ 2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,
243
+ 7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,
244
+ 2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,
245
+ 7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,
246
+ 7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,
247
+ 2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,
248
+ 7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,
249
+ 2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,
250
+ 7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,
251
+ 2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,
252
+ 7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,
253
+ 2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,
254
+ 7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,
255
+ 2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,1,0,
256
+ 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,
257
+ 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,1,2,
258
+ 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
259
+ 1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,
260
+ 1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,
261
+ 1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,
262
+ 1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,
263
+ 1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,
264
+ 11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,
265
+ 12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,
266
+ 13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,
267
+ 14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,
268
+ 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,
269
+ 17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,
270
+ 18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,
271
+ 20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,
272
+ 22,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,
273
+ 24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,
274
+ 26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,
275
+ 29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,
276
+ 31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,
277
+ 33,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,
278
+ 36,1,36,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,
279
+ 38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,
280
+ 40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,
281
+ 42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,
282
+ 44,1,44,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,
283
+ 45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,
284
+ 47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,
285
+ 49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,
286
+ 51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,52,1,53,1,
287
+ 53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,
288
+ 54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,
289
+ 56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,
290
+ 57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,
291
+ 59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,
292
+ 60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,
293
+ 61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,
294
+ 62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,64,1,64,1,65,1,
295
+ 65,1,66,1,66,1,67,1,67,1,68,1,68,1,69,1,69,1,70,1,70,1,70,1,71,1,
296
+ 71,1,72,1,72,1,72,1,73,1,73,1,73,1,74,1,74,1,74,1,75,1,75,1,76,1,
297
+ 76,1,76,1,77,1,77,1,78,1,78,1,78,1,79,1,79,1,80,1,80,1,81,1,81,1,
298
+ 82,1,82,1,83,1,83,1,84,1,84,1,84,1,85,1,85,1,85,1,86,1,86,1,87,1,
299
+ 87,1,88,1,88,1,89,1,89,1,90,1,90,1,91,1,91,1,92,1,92,1,93,1,93,1,
300
+ 94,1,94,1,94,1,95,1,95,1,95,1,96,1,96,1,96,1,97,1,97,1,97,1,98,1,
301
+ 98,1,98,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,101,1,101,
302
+ 1,101,1,102,1,102,1,102,1,103,1,103,1,103,1,104,1,104,1,104,1,105,
303
+ 1,105,1,105,1,106,1,106,1,106,1,107,1,107,1,108,1,108,1,108,1,108,
304
+ 1,109,1,109,1,109,5,109,962,8,109,10,109,12,109,965,9,109,1,110,
305
+ 1,110,3,110,969,8,110,1,111,1,111,1,112,1,112,1,113,1,113,1,113,
306
+ 1,113,1,113,1,113,1,113,1,113,1,113,1,113,3,113,985,8,113,1,114,
307
+ 1,114,1,114,1,114,1,114,1,115,1,115,1,115,3,115,995,8,115,1,116,
308
+ 1,116,3,116,999,8,116,1,116,1,116,3,116,1003,8,116,1,116,1,116,3,
309
+ 116,1007,8,116,1,116,3,116,1010,8,116,1,117,1,117,1,117,4,117,1015,
310
+ 8,117,11,117,12,117,1016,1,118,1,118,5,118,1021,8,118,10,118,12,
311
+ 118,1024,9,118,1,119,1,119,5,119,1028,8,119,10,119,12,119,1031,9,
312
+ 119,1,120,1,120,4,120,1035,8,120,11,120,12,120,1036,1,121,1,121,
313
+ 1,121,1,122,1,122,1,123,1,123,1,124,1,124,1,125,1,125,3,125,1050,
314
+ 8,125,1,125,1,125,1,125,1,125,1,125,3,125,1057,8,125,1,125,1,125,
315
+ 3,125,1061,8,125,3,125,1063,8,125,1,126,1,126,1,127,1,127,1,128,
316
+ 1,128,1,128,1,128,3,128,1073,8,128,1,129,1,129,3,129,1077,8,129,
317
+ 1,130,1,130,3,130,1081,8,130,1,130,3,130,1084,8,130,1,130,1,130,
318
+ 1,130,3,130,1089,8,130,3,130,1091,8,130,1,131,1,131,1,131,3,131,
319
+ 1096,8,131,1,131,1,131,3,131,1100,8,131,1,132,3,132,1103,8,132,1,
320
+ 132,1,132,1,132,1,132,1,132,3,132,1110,8,132,1,133,1,133,3,133,1114,
321
+ 8,133,1,133,1,133,1,134,1,134,1,135,4,135,1121,8,135,11,135,12,135,
322
+ 1122,1,136,3,136,1126,8,136,1,136,1,136,1,136,1,136,1,136,3,136,
323
+ 1133,8,136,1,137,1,137,3,137,1137,8,137,1,137,1,137,1,138,4,138,
324
+ 1142,8,138,11,138,12,138,1143,1,139,1,139,1,140,1,140,1,140,1,140,
325
+ 1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,
326
+ 1,140,1,140,1,140,1,140,1,140,1,140,1,140,3,140,1170,8,140,1,141,
327
+ 4,141,1173,8,141,11,141,12,141,1174,1,142,1,142,3,142,1179,8,142,
328
+ 1,143,1,143,1,143,1,143,3,143,1185,8,143,1,144,1,144,1,144,1,145,
329
+ 1,145,1,145,3,145,1193,8,145,1,145,3,145,1196,8,145,1,146,1,146,
330
+ 1,146,1,146,4,146,1202,8,146,11,146,12,146,1203,1,147,3,147,1207,
331
+ 8,147,1,147,1,147,3,147,1211,8,147,1,147,1,147,1,148,1,148,1,148,
332
+ 3,148,1218,8,148,1,149,4,149,1221,8,149,11,149,12,149,1222,1,150,
333
+ 1,150,1,150,1,150,1,150,1,150,1,150,3,150,1232,8,150,1,151,1,151,
334
+ 5,151,1236,8,151,10,151,12,151,1239,9,151,1,151,1,151,3,151,1243,
335
+ 8,151,1,151,4,151,1246,8,151,11,151,12,151,1247,1,151,4,151,1251,
336
+ 8,151,11,151,12,151,1252,1,151,1,151,1,152,1,152,5,152,1259,8,152,
337
+ 10,152,12,152,1262,9,152,1,152,1,152,1,153,1,153,1,153,1,153,1,153,
338
+ 5,153,1271,8,153,10,153,12,153,1274,9,153,1,153,1,153,5,153,1278,
339
+ 8,153,10,153,12,153,1281,9,153,1,153,1,153,1,153,1,153,1,154,4,154,
340
+ 1288,8,154,11,154,12,154,1289,1,154,1,154,1,155,1,155,3,155,1296,
341
+ 8,155,1,155,3,155,1299,8,155,1,155,1,155,1,156,1,156,1,156,1,156,
342
+ 5,156,1307,8,156,10,156,12,156,1310,9,156,1,156,1,156,1,156,1,156,
343
+ 1,156,1,157,1,157,1,157,1,157,5,157,1321,8,157,10,157,12,157,1324,
344
+ 9,157,1,157,1,157,2,1237,1308,0,158,1,1,3,2,5,3,7,4,9,5,11,6,13,
345
+ 7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,
346
+ 37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,
347
+ 59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,
348
+ 81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,
349
+ 51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,
350
+ 121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,
351
+ 70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,
352
+ 159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,
353
+ 89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,98,
354
+ 197,99,199,100,201,101,203,102,205,103,207,104,209,105,211,106,213,
355
+ 107,215,108,217,109,219,110,221,0,223,0,225,0,227,0,229,0,231,111,
356
+ 233,0,235,0,237,0,239,0,241,0,243,0,245,0,247,0,249,0,251,0,253,
357
+ 0,255,0,257,0,259,0,261,0,263,0,265,0,267,0,269,0,271,112,273,0,
358
+ 275,0,277,0,279,0,281,0,283,0,285,0,287,0,289,0,291,0,293,0,295,
359
+ 113,297,0,299,0,301,0,303,114,305,115,307,116,309,117,311,118,313,
360
+ 119,315,120,1,0,23,3,0,65,90,95,95,97,122,1,0,48,57,2,0,66,66,98,
361
+ 98,1,0,48,49,2,0,88,88,120,120,1,0,49,57,1,0,48,55,3,0,48,57,65,
362
+ 70,97,102,2,0,85,85,117,117,2,0,76,76,108,108,2,0,69,69,101,101,
363
+ 2,0,43,43,45,45,2,0,80,80,112,112,4,0,70,70,76,76,102,102,108,108,
364
+ 4,0,10,10,13,13,39,39,92,92,10,0,34,34,39,39,63,63,92,92,97,98,102,
365
+ 102,110,110,114,114,116,116,118,118,3,0,76,76,85,85,117,117,4,0,
366
+ 10,10,13,13,34,34,92,92,1,0,10,10,1,0,123,123,1,0,125,125,2,0,9,
367
+ 9,32,32,2,0,10,10,13,13,1356,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,
368
+ 0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,
369
+ 17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,
370
+ 27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,
371
+ 37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,
372
+ 47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,
373
+ 57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,
374
+ 67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,
375
+ 77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,
376
+ 87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,
377
+ 97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,
378
+ 0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,
379
+ 1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,
380
+ 0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,
381
+ 0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,
382
+ 143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,
383
+ 0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,
384
+ 1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,
385
+ 0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,
386
+ 0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,
387
+ 189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,
388
+ 0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,
389
+ 1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,
390
+ 0,217,1,0,0,0,0,219,1,0,0,0,0,231,1,0,0,0,0,271,1,0,0,0,0,295,1,
391
+ 0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,
392
+ 311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,1,317,1,0,0,0,3,331,1,0,
393
+ 0,0,5,348,1,0,0,0,7,367,1,0,0,0,9,374,1,0,0,0,11,382,1,0,0,0,13,
394
+ 390,1,0,0,0,15,401,1,0,0,0,17,412,1,0,0,0,19,422,1,0,0,0,21,433,
395
+ 1,0,0,0,23,441,1,0,0,0,25,451,1,0,0,0,27,462,1,0,0,0,29,473,1,0,
396
+ 0,0,31,486,1,0,0,0,33,492,1,0,0,0,35,506,1,0,0,0,37,514,1,0,0,0,
397
+ 39,527,1,0,0,0,41,532,1,0,0,0,43,538,1,0,0,0,45,543,1,0,0,0,47,548,
398
+ 1,0,0,0,49,554,1,0,0,0,51,563,1,0,0,0,53,571,1,0,0,0,55,574,1,0,
399
+ 0,0,57,581,1,0,0,0,59,586,1,0,0,0,61,591,1,0,0,0,63,598,1,0,0,0,
400
+ 65,604,1,0,0,0,67,608,1,0,0,0,69,613,1,0,0,0,71,616,1,0,0,0,73,623,
401
+ 1,0,0,0,75,627,1,0,0,0,77,632,1,0,0,0,79,641,1,0,0,0,81,650,1,0,
402
+ 0,0,83,657,1,0,0,0,85,663,1,0,0,0,87,670,1,0,0,0,89,677,1,0,0,0,
403
+ 91,684,1,0,0,0,93,691,1,0,0,0,95,698,1,0,0,0,97,706,1,0,0,0,99,712,
404
+ 1,0,0,0,101,721,1,0,0,0,103,726,1,0,0,0,105,735,1,0,0,0,107,741,
405
+ 1,0,0,0,109,750,1,0,0,0,111,759,1,0,0,0,113,767,1,0,0,0,115,773,
406
+ 1,0,0,0,117,782,1,0,0,0,119,791,1,0,0,0,121,802,1,0,0,0,123,812,
407
+ 1,0,0,0,125,827,1,0,0,0,127,841,1,0,0,0,129,843,1,0,0,0,131,845,
408
+ 1,0,0,0,133,847,1,0,0,0,135,849,1,0,0,0,137,851,1,0,0,0,139,853,
409
+ 1,0,0,0,141,855,1,0,0,0,143,858,1,0,0,0,145,860,1,0,0,0,147,863,
410
+ 1,0,0,0,149,866,1,0,0,0,151,869,1,0,0,0,153,871,1,0,0,0,155,874,
411
+ 1,0,0,0,157,876,1,0,0,0,159,879,1,0,0,0,161,881,1,0,0,0,163,883,
412
+ 1,0,0,0,165,885,1,0,0,0,167,887,1,0,0,0,169,889,1,0,0,0,171,892,
413
+ 1,0,0,0,173,895,1,0,0,0,175,897,1,0,0,0,177,899,1,0,0,0,179,901,
414
+ 1,0,0,0,181,903,1,0,0,0,183,905,1,0,0,0,185,907,1,0,0,0,187,909,
415
+ 1,0,0,0,189,911,1,0,0,0,191,914,1,0,0,0,193,917,1,0,0,0,195,920,
416
+ 1,0,0,0,197,923,1,0,0,0,199,926,1,0,0,0,201,930,1,0,0,0,203,934,
417
+ 1,0,0,0,205,937,1,0,0,0,207,940,1,0,0,0,209,943,1,0,0,0,211,946,
418
+ 1,0,0,0,213,949,1,0,0,0,215,952,1,0,0,0,217,954,1,0,0,0,219,958,
419
+ 1,0,0,0,221,968,1,0,0,0,223,970,1,0,0,0,225,972,1,0,0,0,227,984,
420
+ 1,0,0,0,229,986,1,0,0,0,231,994,1,0,0,0,233,1009,1,0,0,0,235,1011,
421
+ 1,0,0,0,237,1018,1,0,0,0,239,1025,1,0,0,0,241,1032,1,0,0,0,243,1038,
422
+ 1,0,0,0,245,1041,1,0,0,0,247,1043,1,0,0,0,249,1045,1,0,0,0,251,1062,
423
+ 1,0,0,0,253,1064,1,0,0,0,255,1066,1,0,0,0,257,1072,1,0,0,0,259,1076,
424
+ 1,0,0,0,261,1090,1,0,0,0,263,1092,1,0,0,0,265,1109,1,0,0,0,267,1111,
425
+ 1,0,0,0,269,1117,1,0,0,0,271,1120,1,0,0,0,273,1132,1,0,0,0,275,1134,
426
+ 1,0,0,0,277,1141,1,0,0,0,279,1145,1,0,0,0,281,1169,1,0,0,0,283,1172,
427
+ 1,0,0,0,285,1178,1,0,0,0,287,1184,1,0,0,0,289,1186,1,0,0,0,291,1189,
428
+ 1,0,0,0,293,1197,1,0,0,0,295,1206,1,0,0,0,297,1217,1,0,0,0,299,1220,
429
+ 1,0,0,0,301,1231,1,0,0,0,303,1233,1,0,0,0,305,1256,1,0,0,0,307,1265,
430
+ 1,0,0,0,309,1287,1,0,0,0,311,1298,1,0,0,0,313,1302,1,0,0,0,315,1316,
431
+ 1,0,0,0,317,318,5,95,0,0,318,319,5,95,0,0,319,320,5,101,0,0,320,
432
+ 321,5,120,0,0,321,322,5,116,0,0,322,323,5,101,0,0,323,324,5,110,
433
+ 0,0,324,325,5,115,0,0,325,326,5,105,0,0,326,327,5,111,0,0,327,328,
434
+ 5,110,0,0,328,329,5,95,0,0,329,330,5,95,0,0,330,2,1,0,0,0,331,332,
435
+ 5,95,0,0,332,333,5,95,0,0,333,334,5,98,0,0,334,335,5,117,0,0,335,
436
+ 336,5,105,0,0,336,337,5,108,0,0,337,338,5,116,0,0,338,339,5,105,
437
+ 0,0,339,340,5,110,0,0,340,341,5,95,0,0,341,342,5,118,0,0,342,343,
438
+ 5,97,0,0,343,344,5,95,0,0,344,345,5,97,0,0,345,346,5,114,0,0,346,
439
+ 347,5,103,0,0,347,4,1,0,0,0,348,349,5,95,0,0,349,350,5,95,0,0,350,
440
+ 351,5,98,0,0,351,352,5,117,0,0,352,353,5,105,0,0,353,354,5,108,0,
441
+ 0,354,355,5,116,0,0,355,356,5,105,0,0,356,357,5,110,0,0,357,358,
442
+ 5,95,0,0,358,359,5,111,0,0,359,360,5,102,0,0,360,361,5,102,0,0,361,
443
+ 362,5,115,0,0,362,363,5,101,0,0,363,364,5,116,0,0,364,365,5,111,
444
+ 0,0,365,366,5,102,0,0,366,6,1,0,0,0,367,368,5,95,0,0,368,369,5,95,
445
+ 0,0,369,370,5,109,0,0,370,371,5,49,0,0,371,372,5,50,0,0,372,373,
446
+ 5,56,0,0,373,8,1,0,0,0,374,375,5,95,0,0,375,376,5,95,0,0,376,377,
447
+ 5,109,0,0,377,378,5,49,0,0,378,379,5,50,0,0,379,380,5,56,0,0,380,
448
+ 381,5,100,0,0,381,10,1,0,0,0,382,383,5,95,0,0,383,384,5,95,0,0,384,
449
+ 385,5,109,0,0,385,386,5,49,0,0,386,387,5,50,0,0,387,388,5,56,0,0,
450
+ 388,389,5,105,0,0,389,12,1,0,0,0,390,391,5,95,0,0,391,392,5,95,0,
451
+ 0,392,393,5,116,0,0,393,394,5,121,0,0,394,395,5,112,0,0,395,396,
452
+ 5,101,0,0,396,397,5,111,0,0,397,398,5,102,0,0,398,399,5,95,0,0,399,
453
+ 400,5,95,0,0,400,14,1,0,0,0,401,402,5,95,0,0,402,403,5,95,0,0,403,
454
+ 404,5,105,0,0,404,405,5,110,0,0,405,406,5,108,0,0,406,407,5,105,
455
+ 0,0,407,408,5,110,0,0,408,409,5,101,0,0,409,410,5,95,0,0,410,411,
456
+ 5,95,0,0,411,16,1,0,0,0,412,413,5,95,0,0,413,414,5,95,0,0,414,415,
457
+ 5,115,0,0,415,416,5,116,0,0,416,417,5,100,0,0,417,418,5,99,0,0,418,
458
+ 419,5,97,0,0,419,420,5,108,0,0,420,421,5,108,0,0,421,18,1,0,0,0,
459
+ 422,423,5,95,0,0,423,424,5,95,0,0,424,425,5,100,0,0,425,426,5,101,
460
+ 0,0,426,427,5,99,0,0,427,428,5,108,0,0,428,429,5,115,0,0,429,430,
461
+ 5,112,0,0,430,431,5,101,0,0,431,432,5,99,0,0,432,20,1,0,0,0,433,
462
+ 434,5,95,0,0,434,435,5,95,0,0,435,436,5,99,0,0,436,437,5,100,0,0,
463
+ 437,438,5,101,0,0,438,439,5,99,0,0,439,440,5,108,0,0,440,22,1,0,
464
+ 0,0,441,442,5,95,0,0,442,443,5,95,0,0,443,444,5,99,0,0,444,445,5,
465
+ 108,0,0,445,446,5,114,0,0,446,447,5,99,0,0,447,448,5,97,0,0,448,
466
+ 449,5,108,0,0,449,450,5,108,0,0,450,24,1,0,0,0,451,452,5,95,0,0,
467
+ 452,453,5,95,0,0,453,454,5,102,0,0,454,455,5,97,0,0,455,456,5,115,
468
+ 0,0,456,457,5,116,0,0,457,458,5,99,0,0,458,459,5,97,0,0,459,460,
469
+ 5,108,0,0,460,461,5,108,0,0,461,26,1,0,0,0,462,463,5,95,0,0,463,
470
+ 464,5,95,0,0,464,465,5,116,0,0,465,466,5,104,0,0,466,467,5,105,0,
471
+ 0,467,468,5,115,0,0,468,469,5,99,0,0,469,470,5,97,0,0,470,471,5,
472
+ 108,0,0,471,472,5,108,0,0,472,28,1,0,0,0,473,474,5,95,0,0,474,475,
473
+ 5,95,0,0,475,476,5,118,0,0,476,477,5,101,0,0,477,478,5,99,0,0,478,
474
+ 479,5,116,0,0,479,480,5,111,0,0,480,481,5,114,0,0,481,482,5,99,0,
475
+ 0,482,483,5,97,0,0,483,484,5,108,0,0,484,485,5,108,0,0,485,30,1,
476
+ 0,0,0,486,487,5,95,0,0,487,488,5,95,0,0,488,489,5,97,0,0,489,490,
477
+ 5,115,0,0,490,491,5,109,0,0,491,32,1,0,0,0,492,493,5,95,0,0,493,
478
+ 494,5,95,0,0,494,495,5,97,0,0,495,496,5,116,0,0,496,497,5,116,0,
479
+ 0,497,498,5,114,0,0,498,499,5,105,0,0,499,500,5,98,0,0,500,501,5,
480
+ 117,0,0,501,502,5,116,0,0,502,503,5,101,0,0,503,504,5,95,0,0,504,
481
+ 505,5,95,0,0,505,34,1,0,0,0,506,507,5,95,0,0,507,508,5,95,0,0,508,
482
+ 509,5,97,0,0,509,510,5,115,0,0,510,511,5,109,0,0,511,512,5,95,0,
483
+ 0,512,513,5,95,0,0,513,36,1,0,0,0,514,515,5,95,0,0,515,516,5,95,
484
+ 0,0,516,517,5,118,0,0,517,518,5,111,0,0,518,519,5,108,0,0,519,520,
485
+ 5,97,0,0,520,521,5,116,0,0,521,522,5,105,0,0,522,523,5,108,0,0,523,
486
+ 524,5,101,0,0,524,525,5,95,0,0,525,526,5,95,0,0,526,38,1,0,0,0,527,
487
+ 528,5,97,0,0,528,529,5,117,0,0,529,530,5,116,0,0,530,531,5,111,0,
488
+ 0,531,40,1,0,0,0,532,533,5,98,0,0,533,534,5,114,0,0,534,535,5,101,
489
+ 0,0,535,536,5,97,0,0,536,537,5,107,0,0,537,42,1,0,0,0,538,539,5,
490
+ 99,0,0,539,540,5,97,0,0,540,541,5,115,0,0,541,542,5,101,0,0,542,
491
+ 44,1,0,0,0,543,544,5,99,0,0,544,545,5,104,0,0,545,546,5,97,0,0,546,
492
+ 547,5,114,0,0,547,46,1,0,0,0,548,549,5,99,0,0,549,550,5,111,0,0,
493
+ 550,551,5,110,0,0,551,552,5,115,0,0,552,553,5,116,0,0,553,48,1,0,
494
+ 0,0,554,555,5,99,0,0,555,556,5,111,0,0,556,557,5,110,0,0,557,558,
495
+ 5,116,0,0,558,559,5,105,0,0,559,560,5,110,0,0,560,561,5,117,0,0,
496
+ 561,562,5,101,0,0,562,50,1,0,0,0,563,564,5,100,0,0,564,565,5,101,
497
+ 0,0,565,566,5,102,0,0,566,567,5,97,0,0,567,568,5,117,0,0,568,569,
498
+ 5,108,0,0,569,570,5,116,0,0,570,52,1,0,0,0,571,572,5,100,0,0,572,
499
+ 573,5,111,0,0,573,54,1,0,0,0,574,575,5,100,0,0,575,576,5,111,0,0,
500
+ 576,577,5,117,0,0,577,578,5,98,0,0,578,579,5,108,0,0,579,580,5,101,
501
+ 0,0,580,56,1,0,0,0,581,582,5,101,0,0,582,583,5,108,0,0,583,584,5,
502
+ 115,0,0,584,585,5,101,0,0,585,58,1,0,0,0,586,587,5,101,0,0,587,588,
503
+ 5,110,0,0,588,589,5,117,0,0,589,590,5,109,0,0,590,60,1,0,0,0,591,
504
+ 592,5,101,0,0,592,593,5,120,0,0,593,594,5,116,0,0,594,595,5,101,
505
+ 0,0,595,596,5,114,0,0,596,597,5,110,0,0,597,62,1,0,0,0,598,599,5,
506
+ 102,0,0,599,600,5,108,0,0,600,601,5,111,0,0,601,602,5,97,0,0,602,
507
+ 603,5,116,0,0,603,64,1,0,0,0,604,605,5,102,0,0,605,606,5,111,0,0,
508
+ 606,607,5,114,0,0,607,66,1,0,0,0,608,609,5,103,0,0,609,610,5,111,
509
+ 0,0,610,611,5,116,0,0,611,612,5,111,0,0,612,68,1,0,0,0,613,614,5,
510
+ 105,0,0,614,615,5,102,0,0,615,70,1,0,0,0,616,617,5,105,0,0,617,618,
511
+ 5,110,0,0,618,619,5,108,0,0,619,620,5,105,0,0,620,621,5,110,0,0,
512
+ 621,622,5,101,0,0,622,72,1,0,0,0,623,624,5,105,0,0,624,625,5,110,
513
+ 0,0,625,626,5,116,0,0,626,74,1,0,0,0,627,628,5,108,0,0,628,629,5,
514
+ 111,0,0,629,630,5,110,0,0,630,631,5,103,0,0,631,76,1,0,0,0,632,633,
515
+ 5,114,0,0,633,634,5,101,0,0,634,635,5,103,0,0,635,636,5,105,0,0,
516
+ 636,637,5,115,0,0,637,638,5,116,0,0,638,639,5,101,0,0,639,640,5,
517
+ 114,0,0,640,78,1,0,0,0,641,642,5,114,0,0,642,643,5,101,0,0,643,644,
518
+ 5,115,0,0,644,645,5,116,0,0,645,646,5,114,0,0,646,647,5,105,0,0,
519
+ 647,648,5,99,0,0,648,649,5,116,0,0,649,80,1,0,0,0,650,651,5,114,
520
+ 0,0,651,652,5,101,0,0,652,653,5,116,0,0,653,654,5,117,0,0,654,655,
521
+ 5,114,0,0,655,656,5,110,0,0,656,82,1,0,0,0,657,658,5,115,0,0,658,
522
+ 659,5,104,0,0,659,660,5,111,0,0,660,661,5,114,0,0,661,662,5,116,
523
+ 0,0,662,84,1,0,0,0,663,664,5,115,0,0,664,665,5,105,0,0,665,666,5,
524
+ 103,0,0,666,667,5,110,0,0,667,668,5,101,0,0,668,669,5,100,0,0,669,
525
+ 86,1,0,0,0,670,671,5,115,0,0,671,672,5,105,0,0,672,673,5,122,0,0,
526
+ 673,674,5,101,0,0,674,675,5,111,0,0,675,676,5,102,0,0,676,88,1,0,
527
+ 0,0,677,678,5,115,0,0,678,679,5,116,0,0,679,680,5,97,0,0,680,681,
528
+ 5,116,0,0,681,682,5,105,0,0,682,683,5,99,0,0,683,90,1,0,0,0,684,
529
+ 685,5,115,0,0,685,686,5,116,0,0,686,687,5,114,0,0,687,688,5,117,
530
+ 0,0,688,689,5,99,0,0,689,690,5,116,0,0,690,92,1,0,0,0,691,692,5,
531
+ 115,0,0,692,693,5,119,0,0,693,694,5,105,0,0,694,695,5,116,0,0,695,
532
+ 696,5,99,0,0,696,697,5,104,0,0,697,94,1,0,0,0,698,699,5,116,0,0,
533
+ 699,700,5,121,0,0,700,701,5,112,0,0,701,702,5,101,0,0,702,703,5,
534
+ 100,0,0,703,704,5,101,0,0,704,705,5,102,0,0,705,96,1,0,0,0,706,707,
535
+ 5,117,0,0,707,708,5,110,0,0,708,709,5,105,0,0,709,710,5,111,0,0,
536
+ 710,711,5,110,0,0,711,98,1,0,0,0,712,713,5,117,0,0,713,714,5,110,
537
+ 0,0,714,715,5,115,0,0,715,716,5,105,0,0,716,717,5,103,0,0,717,718,
538
+ 5,110,0,0,718,719,5,101,0,0,719,720,5,100,0,0,720,100,1,0,0,0,721,
539
+ 722,5,118,0,0,722,723,5,111,0,0,723,724,5,105,0,0,724,725,5,100,
540
+ 0,0,725,102,1,0,0,0,726,727,5,118,0,0,727,728,5,111,0,0,728,729,
541
+ 5,108,0,0,729,730,5,97,0,0,730,731,5,116,0,0,731,732,5,105,0,0,732,
542
+ 733,5,108,0,0,733,734,5,101,0,0,734,104,1,0,0,0,735,736,5,119,0,
543
+ 0,736,737,5,104,0,0,737,738,5,105,0,0,738,739,5,108,0,0,739,740,
544
+ 5,101,0,0,740,106,1,0,0,0,741,742,5,95,0,0,742,743,5,65,0,0,743,
545
+ 744,5,108,0,0,744,745,5,105,0,0,745,746,5,103,0,0,746,747,5,110,
546
+ 0,0,747,748,5,97,0,0,748,749,5,115,0,0,749,108,1,0,0,0,750,751,5,
547
+ 95,0,0,751,752,5,65,0,0,752,753,5,108,0,0,753,754,5,105,0,0,754,
548
+ 755,5,103,0,0,755,756,5,110,0,0,756,757,5,111,0,0,757,758,5,102,
549
+ 0,0,758,110,1,0,0,0,759,760,5,95,0,0,760,761,5,65,0,0,761,762,5,
550
+ 116,0,0,762,763,5,111,0,0,763,764,5,109,0,0,764,765,5,105,0,0,765,
551
+ 766,5,99,0,0,766,112,1,0,0,0,767,768,5,95,0,0,768,769,5,66,0,0,769,
552
+ 770,5,111,0,0,770,771,5,111,0,0,771,772,5,108,0,0,772,114,1,0,0,
553
+ 0,773,774,5,95,0,0,774,775,5,67,0,0,775,776,5,111,0,0,776,777,5,
554
+ 109,0,0,777,778,5,112,0,0,778,779,5,108,0,0,779,780,5,101,0,0,780,
555
+ 781,5,120,0,0,781,116,1,0,0,0,782,783,5,95,0,0,783,784,5,71,0,0,
556
+ 784,785,5,101,0,0,785,786,5,110,0,0,786,787,5,101,0,0,787,788,5,
557
+ 114,0,0,788,789,5,105,0,0,789,790,5,99,0,0,790,118,1,0,0,0,791,792,
558
+ 5,95,0,0,792,793,5,73,0,0,793,794,5,109,0,0,794,795,5,97,0,0,795,
559
+ 796,5,103,0,0,796,797,5,105,0,0,797,798,5,110,0,0,798,799,5,97,0,
560
+ 0,799,800,5,114,0,0,800,801,5,121,0,0,801,120,1,0,0,0,802,803,5,
561
+ 95,0,0,803,804,5,78,0,0,804,805,5,111,0,0,805,806,5,114,0,0,806,
562
+ 807,5,101,0,0,807,808,5,116,0,0,808,809,5,117,0,0,809,810,5,114,
563
+ 0,0,810,811,5,110,0,0,811,122,1,0,0,0,812,813,5,95,0,0,813,814,5,
564
+ 83,0,0,814,815,5,116,0,0,815,816,5,97,0,0,816,817,5,116,0,0,817,
565
+ 818,5,105,0,0,818,819,5,99,0,0,819,820,5,95,0,0,820,821,5,97,0,0,
566
+ 821,822,5,115,0,0,822,823,5,115,0,0,823,824,5,101,0,0,824,825,5,
567
+ 114,0,0,825,826,5,116,0,0,826,124,1,0,0,0,827,828,5,95,0,0,828,829,
568
+ 5,84,0,0,829,830,5,104,0,0,830,831,5,114,0,0,831,832,5,101,0,0,832,
569
+ 833,5,97,0,0,833,834,5,100,0,0,834,835,5,95,0,0,835,836,5,108,0,
570
+ 0,836,837,5,111,0,0,837,838,5,99,0,0,838,839,5,97,0,0,839,840,5,
571
+ 108,0,0,840,126,1,0,0,0,841,842,5,40,0,0,842,128,1,0,0,0,843,844,
572
+ 5,41,0,0,844,130,1,0,0,0,845,846,5,91,0,0,846,132,1,0,0,0,847,848,
573
+ 5,93,0,0,848,134,1,0,0,0,849,850,5,123,0,0,850,136,1,0,0,0,851,852,
574
+ 5,125,0,0,852,138,1,0,0,0,853,854,5,60,0,0,854,140,1,0,0,0,855,856,
575
+ 5,60,0,0,856,857,5,61,0,0,857,142,1,0,0,0,858,859,5,62,0,0,859,144,
576
+ 1,0,0,0,860,861,5,62,0,0,861,862,5,61,0,0,862,146,1,0,0,0,863,864,
577
+ 5,60,0,0,864,865,5,60,0,0,865,148,1,0,0,0,866,867,5,62,0,0,867,868,
578
+ 5,62,0,0,868,150,1,0,0,0,869,870,5,43,0,0,870,152,1,0,0,0,871,872,
579
+ 5,43,0,0,872,873,5,43,0,0,873,154,1,0,0,0,874,875,5,45,0,0,875,156,
580
+ 1,0,0,0,876,877,5,45,0,0,877,878,5,45,0,0,878,158,1,0,0,0,879,880,
581
+ 5,42,0,0,880,160,1,0,0,0,881,882,5,47,0,0,882,162,1,0,0,0,883,884,
582
+ 5,37,0,0,884,164,1,0,0,0,885,886,5,38,0,0,886,166,1,0,0,0,887,888,
583
+ 5,124,0,0,888,168,1,0,0,0,889,890,5,38,0,0,890,891,5,38,0,0,891,
584
+ 170,1,0,0,0,892,893,5,124,0,0,893,894,5,124,0,0,894,172,1,0,0,0,
585
+ 895,896,5,94,0,0,896,174,1,0,0,0,897,898,5,33,0,0,898,176,1,0,0,
586
+ 0,899,900,5,126,0,0,900,178,1,0,0,0,901,902,5,63,0,0,902,180,1,0,
587
+ 0,0,903,904,5,58,0,0,904,182,1,0,0,0,905,906,5,59,0,0,906,184,1,
588
+ 0,0,0,907,908,5,44,0,0,908,186,1,0,0,0,909,910,5,61,0,0,910,188,
589
+ 1,0,0,0,911,912,5,42,0,0,912,913,5,61,0,0,913,190,1,0,0,0,914,915,
590
+ 5,47,0,0,915,916,5,61,0,0,916,192,1,0,0,0,917,918,5,37,0,0,918,919,
591
+ 5,61,0,0,919,194,1,0,0,0,920,921,5,43,0,0,921,922,5,61,0,0,922,196,
592
+ 1,0,0,0,923,924,5,45,0,0,924,925,5,61,0,0,925,198,1,0,0,0,926,927,
593
+ 5,60,0,0,927,928,5,60,0,0,928,929,5,61,0,0,929,200,1,0,0,0,930,931,
594
+ 5,62,0,0,931,932,5,62,0,0,932,933,5,61,0,0,933,202,1,0,0,0,934,935,
595
+ 5,38,0,0,935,936,5,61,0,0,936,204,1,0,0,0,937,938,5,94,0,0,938,939,
596
+ 5,61,0,0,939,206,1,0,0,0,940,941,5,124,0,0,941,942,5,61,0,0,942,
597
+ 208,1,0,0,0,943,944,5,61,0,0,944,945,5,61,0,0,945,210,1,0,0,0,946,
598
+ 947,5,33,0,0,947,948,5,61,0,0,948,212,1,0,0,0,949,950,5,45,0,0,950,
599
+ 951,5,62,0,0,951,214,1,0,0,0,952,953,5,46,0,0,953,216,1,0,0,0,954,
600
+ 955,5,46,0,0,955,956,5,46,0,0,956,957,5,46,0,0,957,218,1,0,0,0,958,
601
+ 963,3,221,110,0,959,962,3,221,110,0,960,962,3,225,112,0,961,959,
602
+ 1,0,0,0,961,960,1,0,0,0,962,965,1,0,0,0,963,961,1,0,0,0,963,964,
603
+ 1,0,0,0,964,220,1,0,0,0,965,963,1,0,0,0,966,969,3,223,111,0,967,
604
+ 969,3,227,113,0,968,966,1,0,0,0,968,967,1,0,0,0,969,222,1,0,0,0,
605
+ 970,971,7,0,0,0,971,224,1,0,0,0,972,973,7,1,0,0,973,226,1,0,0,0,
606
+ 974,975,5,92,0,0,975,976,5,117,0,0,976,977,1,0,0,0,977,985,3,229,
607
+ 114,0,978,979,5,92,0,0,979,980,5,85,0,0,980,981,1,0,0,0,981,982,
608
+ 3,229,114,0,982,983,3,229,114,0,983,985,1,0,0,0,984,974,1,0,0,0,
609
+ 984,978,1,0,0,0,985,228,1,0,0,0,986,987,3,249,124,0,987,988,3,249,
610
+ 124,0,988,989,3,249,124,0,989,990,3,249,124,0,990,230,1,0,0,0,991,
611
+ 995,3,233,116,0,992,995,3,259,129,0,993,995,3,281,140,0,994,991,
612
+ 1,0,0,0,994,992,1,0,0,0,994,993,1,0,0,0,995,232,1,0,0,0,996,998,
613
+ 3,237,118,0,997,999,3,251,125,0,998,997,1,0,0,0,998,999,1,0,0,0,
614
+ 999,1010,1,0,0,0,1000,1002,3,239,119,0,1001,1003,3,251,125,0,1002,
615
+ 1001,1,0,0,0,1002,1003,1,0,0,0,1003,1010,1,0,0,0,1004,1006,3,241,
616
+ 120,0,1005,1007,3,251,125,0,1006,1005,1,0,0,0,1006,1007,1,0,0,0,
617
+ 1007,1010,1,0,0,0,1008,1010,3,235,117,0,1009,996,1,0,0,0,1009,1000,
618
+ 1,0,0,0,1009,1004,1,0,0,0,1009,1008,1,0,0,0,1010,234,1,0,0,0,1011,
619
+ 1012,5,48,0,0,1012,1014,7,2,0,0,1013,1015,7,3,0,0,1014,1013,1,0,
620
+ 0,0,1015,1016,1,0,0,0,1016,1014,1,0,0,0,1016,1017,1,0,0,0,1017,236,
621
+ 1,0,0,0,1018,1022,3,245,122,0,1019,1021,3,225,112,0,1020,1019,1,
622
+ 0,0,0,1021,1024,1,0,0,0,1022,1020,1,0,0,0,1022,1023,1,0,0,0,1023,
623
+ 238,1,0,0,0,1024,1022,1,0,0,0,1025,1029,5,48,0,0,1026,1028,3,247,
624
+ 123,0,1027,1026,1,0,0,0,1028,1031,1,0,0,0,1029,1027,1,0,0,0,1029,
625
+ 1030,1,0,0,0,1030,240,1,0,0,0,1031,1029,1,0,0,0,1032,1034,3,243,
626
+ 121,0,1033,1035,3,249,124,0,1034,1033,1,0,0,0,1035,1036,1,0,0,0,
627
+ 1036,1034,1,0,0,0,1036,1037,1,0,0,0,1037,242,1,0,0,0,1038,1039,5,
628
+ 48,0,0,1039,1040,7,4,0,0,1040,244,1,0,0,0,1041,1042,7,5,0,0,1042,
629
+ 246,1,0,0,0,1043,1044,7,6,0,0,1044,248,1,0,0,0,1045,1046,7,7,0,0,
630
+ 1046,250,1,0,0,0,1047,1049,3,253,126,0,1048,1050,3,255,127,0,1049,
631
+ 1048,1,0,0,0,1049,1050,1,0,0,0,1050,1063,1,0,0,0,1051,1052,3,253,
632
+ 126,0,1052,1053,3,257,128,0,1053,1063,1,0,0,0,1054,1056,3,255,127,
633
+ 0,1055,1057,3,253,126,0,1056,1055,1,0,0,0,1056,1057,1,0,0,0,1057,
634
+ 1063,1,0,0,0,1058,1060,3,257,128,0,1059,1061,3,253,126,0,1060,1059,
635
+ 1,0,0,0,1060,1061,1,0,0,0,1061,1063,1,0,0,0,1062,1047,1,0,0,0,1062,
636
+ 1051,1,0,0,0,1062,1054,1,0,0,0,1062,1058,1,0,0,0,1063,252,1,0,0,
637
+ 0,1064,1065,7,8,0,0,1065,254,1,0,0,0,1066,1067,7,9,0,0,1067,256,
638
+ 1,0,0,0,1068,1069,5,108,0,0,1069,1073,5,108,0,0,1070,1071,5,76,0,
639
+ 0,1071,1073,5,76,0,0,1072,1068,1,0,0,0,1072,1070,1,0,0,0,1073,258,
640
+ 1,0,0,0,1074,1077,3,261,130,0,1075,1077,3,263,131,0,1076,1074,1,
641
+ 0,0,0,1076,1075,1,0,0,0,1077,260,1,0,0,0,1078,1080,3,265,132,0,1079,
642
+ 1081,3,267,133,0,1080,1079,1,0,0,0,1080,1081,1,0,0,0,1081,1083,1,
643
+ 0,0,0,1082,1084,3,279,139,0,1083,1082,1,0,0,0,1083,1084,1,0,0,0,
644
+ 1084,1091,1,0,0,0,1085,1086,3,271,135,0,1086,1088,3,267,133,0,1087,
645
+ 1089,3,279,139,0,1088,1087,1,0,0,0,1088,1089,1,0,0,0,1089,1091,1,
646
+ 0,0,0,1090,1078,1,0,0,0,1090,1085,1,0,0,0,1091,262,1,0,0,0,1092,
647
+ 1095,3,243,121,0,1093,1096,3,273,136,0,1094,1096,3,277,138,0,1095,
648
+ 1093,1,0,0,0,1095,1094,1,0,0,0,1096,1097,1,0,0,0,1097,1099,3,275,
649
+ 137,0,1098,1100,3,279,139,0,1099,1098,1,0,0,0,1099,1100,1,0,0,0,
650
+ 1100,264,1,0,0,0,1101,1103,3,271,135,0,1102,1101,1,0,0,0,1102,1103,
651
+ 1,0,0,0,1103,1104,1,0,0,0,1104,1105,5,46,0,0,1105,1110,3,271,135,
652
+ 0,1106,1107,3,271,135,0,1107,1108,5,46,0,0,1108,1110,1,0,0,0,1109,
653
+ 1102,1,0,0,0,1109,1106,1,0,0,0,1110,266,1,0,0,0,1111,1113,7,10,0,
654
+ 0,1112,1114,3,269,134,0,1113,1112,1,0,0,0,1113,1114,1,0,0,0,1114,
655
+ 1115,1,0,0,0,1115,1116,3,271,135,0,1116,268,1,0,0,0,1117,1118,7,
656
+ 11,0,0,1118,270,1,0,0,0,1119,1121,3,225,112,0,1120,1119,1,0,0,0,
657
+ 1121,1122,1,0,0,0,1122,1120,1,0,0,0,1122,1123,1,0,0,0,1123,272,1,
658
+ 0,0,0,1124,1126,3,277,138,0,1125,1124,1,0,0,0,1125,1126,1,0,0,0,
659
+ 1126,1127,1,0,0,0,1127,1128,5,46,0,0,1128,1133,3,277,138,0,1129,
660
+ 1130,3,277,138,0,1130,1131,5,46,0,0,1131,1133,1,0,0,0,1132,1125,
661
+ 1,0,0,0,1132,1129,1,0,0,0,1133,274,1,0,0,0,1134,1136,7,12,0,0,1135,
662
+ 1137,3,269,134,0,1136,1135,1,0,0,0,1136,1137,1,0,0,0,1137,1138,1,
663
+ 0,0,0,1138,1139,3,271,135,0,1139,276,1,0,0,0,1140,1142,3,249,124,
664
+ 0,1141,1140,1,0,0,0,1142,1143,1,0,0,0,1143,1141,1,0,0,0,1143,1144,
665
+ 1,0,0,0,1144,278,1,0,0,0,1145,1146,7,13,0,0,1146,280,1,0,0,0,1147,
666
+ 1148,5,39,0,0,1148,1149,3,283,141,0,1149,1150,5,39,0,0,1150,1170,
667
+ 1,0,0,0,1151,1152,5,76,0,0,1152,1153,5,39,0,0,1153,1154,1,0,0,0,
668
+ 1154,1155,3,283,141,0,1155,1156,5,39,0,0,1156,1170,1,0,0,0,1157,
669
+ 1158,5,117,0,0,1158,1159,5,39,0,0,1159,1160,1,0,0,0,1160,1161,3,
670
+ 283,141,0,1161,1162,5,39,0,0,1162,1170,1,0,0,0,1163,1164,5,85,0,
671
+ 0,1164,1165,5,39,0,0,1165,1166,1,0,0,0,1166,1167,3,283,141,0,1167,
672
+ 1168,5,39,0,0,1168,1170,1,0,0,0,1169,1147,1,0,0,0,1169,1151,1,0,
673
+ 0,0,1169,1157,1,0,0,0,1169,1163,1,0,0,0,1170,282,1,0,0,0,1171,1173,
674
+ 3,285,142,0,1172,1171,1,0,0,0,1173,1174,1,0,0,0,1174,1172,1,0,0,
675
+ 0,1174,1175,1,0,0,0,1175,284,1,0,0,0,1176,1179,8,14,0,0,1177,1179,
676
+ 3,287,143,0,1178,1176,1,0,0,0,1178,1177,1,0,0,0,1179,286,1,0,0,0,
677
+ 1180,1185,3,289,144,0,1181,1185,3,291,145,0,1182,1185,3,293,146,
678
+ 0,1183,1185,3,227,113,0,1184,1180,1,0,0,0,1184,1181,1,0,0,0,1184,
679
+ 1182,1,0,0,0,1184,1183,1,0,0,0,1185,288,1,0,0,0,1186,1187,5,92,0,
680
+ 0,1187,1188,7,15,0,0,1188,290,1,0,0,0,1189,1190,5,92,0,0,1190,1192,
681
+ 3,247,123,0,1191,1193,3,247,123,0,1192,1191,1,0,0,0,1192,1193,1,
682
+ 0,0,0,1193,1195,1,0,0,0,1194,1196,3,247,123,0,1195,1194,1,0,0,0,
683
+ 1195,1196,1,0,0,0,1196,292,1,0,0,0,1197,1198,5,92,0,0,1198,1199,
684
+ 5,120,0,0,1199,1201,1,0,0,0,1200,1202,3,249,124,0,1201,1200,1,0,
685
+ 0,0,1202,1203,1,0,0,0,1203,1201,1,0,0,0,1203,1204,1,0,0,0,1204,294,
686
+ 1,0,0,0,1205,1207,3,297,148,0,1206,1205,1,0,0,0,1206,1207,1,0,0,
687
+ 0,1207,1208,1,0,0,0,1208,1210,5,34,0,0,1209,1211,3,299,149,0,1210,
688
+ 1209,1,0,0,0,1210,1211,1,0,0,0,1211,1212,1,0,0,0,1212,1213,5,34,
689
+ 0,0,1213,296,1,0,0,0,1214,1215,5,117,0,0,1215,1218,5,56,0,0,1216,
690
+ 1218,7,16,0,0,1217,1214,1,0,0,0,1217,1216,1,0,0,0,1218,298,1,0,0,
691
+ 0,1219,1221,3,301,150,0,1220,1219,1,0,0,0,1221,1222,1,0,0,0,1222,
692
+ 1220,1,0,0,0,1222,1223,1,0,0,0,1223,300,1,0,0,0,1224,1232,8,17,0,
693
+ 0,1225,1232,3,287,143,0,1226,1227,5,92,0,0,1227,1232,5,10,0,0,1228,
694
+ 1229,5,92,0,0,1229,1230,5,13,0,0,1230,1232,5,10,0,0,1231,1224,1,
695
+ 0,0,0,1231,1225,1,0,0,0,1231,1226,1,0,0,0,1231,1228,1,0,0,0,1232,
696
+ 302,1,0,0,0,1233,1245,5,35,0,0,1234,1236,8,18,0,0,1235,1234,1,0,
697
+ 0,0,1236,1239,1,0,0,0,1237,1238,1,0,0,0,1237,1235,1,0,0,0,1238,1240,
698
+ 1,0,0,0,1239,1237,1,0,0,0,1240,1242,5,92,0,0,1241,1243,5,13,0,0,
699
+ 1242,1241,1,0,0,0,1242,1243,1,0,0,0,1243,1244,1,0,0,0,1244,1246,
700
+ 5,10,0,0,1245,1237,1,0,0,0,1246,1247,1,0,0,0,1247,1245,1,0,0,0,1247,
701
+ 1248,1,0,0,0,1248,1250,1,0,0,0,1249,1251,8,18,0,0,1250,1249,1,0,
702
+ 0,0,1251,1252,1,0,0,0,1252,1250,1,0,0,0,1252,1253,1,0,0,0,1253,1254,
703
+ 1,0,0,0,1254,1255,6,151,0,0,1255,304,1,0,0,0,1256,1260,5,35,0,0,
704
+ 1257,1259,8,18,0,0,1258,1257,1,0,0,0,1259,1262,1,0,0,0,1260,1258,
705
+ 1,0,0,0,1260,1261,1,0,0,0,1261,1263,1,0,0,0,1262,1260,1,0,0,0,1263,
706
+ 1264,6,152,0,0,1264,306,1,0,0,0,1265,1266,5,97,0,0,1266,1267,5,115,
707
+ 0,0,1267,1268,5,109,0,0,1268,1272,1,0,0,0,1269,1271,8,19,0,0,1270,
708
+ 1269,1,0,0,0,1271,1274,1,0,0,0,1272,1270,1,0,0,0,1272,1273,1,0,0,
709
+ 0,1273,1275,1,0,0,0,1274,1272,1,0,0,0,1275,1279,5,123,0,0,1276,1278,
710
+ 8,20,0,0,1277,1276,1,0,0,0,1278,1281,1,0,0,0,1279,1277,1,0,0,0,1279,
711
+ 1280,1,0,0,0,1280,1282,1,0,0,0,1281,1279,1,0,0,0,1282,1283,5,125,
712
+ 0,0,1283,1284,1,0,0,0,1284,1285,6,153,0,0,1285,308,1,0,0,0,1286,
713
+ 1288,7,21,0,0,1287,1286,1,0,0,0,1288,1289,1,0,0,0,1289,1287,1,0,
714
+ 0,0,1289,1290,1,0,0,0,1290,1291,1,0,0,0,1291,1292,6,154,0,0,1292,
715
+ 310,1,0,0,0,1293,1295,5,13,0,0,1294,1296,5,10,0,0,1295,1294,1,0,
716
+ 0,0,1295,1296,1,0,0,0,1296,1299,1,0,0,0,1297,1299,5,10,0,0,1298,
717
+ 1293,1,0,0,0,1298,1297,1,0,0,0,1299,1300,1,0,0,0,1300,1301,6,155,
718
+ 0,0,1301,312,1,0,0,0,1302,1303,5,47,0,0,1303,1304,5,42,0,0,1304,
719
+ 1308,1,0,0,0,1305,1307,9,0,0,0,1306,1305,1,0,0,0,1307,1310,1,0,0,
720
+ 0,1308,1309,1,0,0,0,1308,1306,1,0,0,0,1309,1311,1,0,0,0,1310,1308,
721
+ 1,0,0,0,1311,1312,5,42,0,0,1312,1313,5,47,0,0,1313,1314,1,0,0,0,
722
+ 1314,1315,6,156,0,0,1315,314,1,0,0,0,1316,1317,5,47,0,0,1317,1318,
723
+ 5,47,0,0,1318,1322,1,0,0,0,1319,1321,8,22,0,0,1320,1319,1,0,0,0,
724
+ 1321,1324,1,0,0,0,1322,1320,1,0,0,0,1322,1323,1,0,0,0,1323,1325,
725
+ 1,0,0,0,1324,1322,1,0,0,0,1325,1326,6,157,0,0,1326,316,1,0,0,0,58,
726
+ 0,961,963,968,984,994,998,1002,1006,1009,1016,1022,1029,1036,1049,
727
+ 1056,1060,1062,1072,1076,1080,1083,1088,1090,1095,1099,1102,1109,
728
+ 1113,1122,1125,1132,1136,1143,1169,1174,1178,1184,1192,1195,1203,
729
+ 1206,1210,1217,1222,1231,1237,1242,1247,1252,1260,1272,1279,1289,
730
+ 1295,1298,1308,1322,1,0,1,0
731
+ ];
732
+
733
+ private static __ATN: antlr.ATN;
734
+ public static get _ATN(): antlr.ATN {
735
+ if (!CLexer.__ATN) {
736
+ CLexer.__ATN = new antlr.ATNDeserializer().deserialize(CLexer._serializedATN);
737
+ }
738
+
739
+ return CLexer.__ATN;
740
+ }
741
+
742
+
743
+ private static readonly vocabulary = new antlr.Vocabulary(CLexer.literalNames, CLexer.symbolicNames, []);
744
+
745
+ public override get vocabulary(): antlr.Vocabulary {
746
+ return CLexer.vocabulary;
747
+ }
748
+
749
+ private static readonly decisionsToDFA = CLexer._ATN.decisionToState.map( (ds: antlr.DecisionState, index: number) => new antlr.DFA(ds, index) );
750
+ }