circuitscript 0.1.31 → 0.1.33

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 (58) hide show
  1. package/dist/cjs/BaseVisitor.js +37 -3
  2. package/dist/cjs/RefdesAnnotationVisitor.js +27 -10
  3. package/dist/cjs/antlr/CircuitScriptParser.js +990 -831
  4. package/dist/cjs/draw_symbols.js +38 -34
  5. package/dist/cjs/environment.js +24 -4
  6. package/dist/cjs/execute.js +107 -68
  7. package/dist/cjs/globals.js +4 -2
  8. package/dist/cjs/graph.js +14 -12
  9. package/dist/cjs/helpers.js +85 -16
  10. package/dist/cjs/layout.js +50 -25
  11. package/dist/cjs/main.js +16 -18
  12. package/dist/cjs/objects/ClassComponent.js +199 -30
  13. package/dist/cjs/objects/types.js +5 -1
  14. package/dist/cjs/regenerate-tests.js +3 -3
  15. package/dist/cjs/render.js +5 -3
  16. package/dist/cjs/rules-check/no-connect-on-connected-pin.js +9 -8
  17. package/dist/cjs/rules-check/rules.js +7 -2
  18. package/dist/cjs/rules-check/unconnected-pins.js +10 -8
  19. package/dist/cjs/utils.js +2 -1
  20. package/dist/cjs/validate/SymbolValidatorVisitor.js +0 -10
  21. package/dist/cjs/visitor.js +284 -191
  22. package/dist/esm/BaseVisitor.js +37 -3
  23. package/dist/esm/RefdesAnnotationVisitor.js +27 -10
  24. package/dist/esm/antlr/CircuitScriptParser.js +989 -830
  25. package/dist/esm/antlr/CircuitScriptVisitor.js +1 -0
  26. package/dist/esm/draw_symbols.js +38 -34
  27. package/dist/esm/environment.js +21 -1
  28. package/dist/esm/execute.js +108 -69
  29. package/dist/esm/globals.js +2 -0
  30. package/dist/esm/graph.js +14 -12
  31. package/dist/esm/helpers.js +86 -17
  32. package/dist/esm/layout.js +51 -26
  33. package/dist/esm/main.js +16 -18
  34. package/dist/esm/objects/ClassComponent.js +201 -30
  35. package/dist/esm/objects/types.js +7 -1
  36. package/dist/esm/regenerate-tests.js +3 -3
  37. package/dist/esm/render.js +5 -3
  38. package/dist/esm/rules-check/no-connect-on-connected-pin.js +9 -8
  39. package/dist/esm/rules-check/rules.js +7 -2
  40. package/dist/esm/rules-check/unconnected-pins.js +10 -8
  41. package/dist/esm/utils.js +2 -1
  42. package/dist/esm/validate/SymbolValidatorVisitor.js +0 -10
  43. package/dist/esm/visitor.js +185 -92
  44. package/dist/types/BaseVisitor.d.ts +15 -5
  45. package/dist/types/RefdesAnnotationVisitor.d.ts +2 -0
  46. package/dist/types/antlr/CircuitScriptParser.d.ts +32 -14
  47. package/dist/types/antlr/CircuitScriptVisitor.d.ts +2 -0
  48. package/dist/types/environment.d.ts +7 -1
  49. package/dist/types/execute.d.ts +4 -1
  50. package/dist/types/globals.d.ts +2 -0
  51. package/dist/types/graph.d.ts +2 -2
  52. package/dist/types/helpers.d.ts +2 -1
  53. package/dist/types/layout.d.ts +5 -4
  54. package/dist/types/objects/ClassComponent.d.ts +34 -9
  55. package/dist/types/objects/types.d.ts +19 -3
  56. package/dist/types/validate/SymbolValidatorVisitor.d.ts +0 -4
  57. package/dist/types/visitor.d.ts +7 -1
  58. package/package.json +1 -1
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Function_exprContext = exports.Function_def_exprContext = exports.Value_exprContext = exports.Unary_operatorContext = exports.Binary_operatorContext = exports.RoundedBracketsExprContext = exports.BinaryOperatorExprContext = exports.ValueAtomExprContext = exports.UnaryOperatorExprContext = exports.DataExprContext = exports.LogicalOperatorExprContext = exports.MultiplyExprContext = exports.AdditionExprContext = exports.FunctionCallExprContext = exports.ArrayIndexExprContext = exports.ArrayExprContext = exports.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.Property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.Operator_assignment_exprContext = exports.Assignment_exprContext = exports.At_block_pin_expression_complexContext = exports.At_block_pin_expression_simpleContext = exports.At_block_pin_exprContext = exports.At_block_headerContext = exports.At_block_expressionsContext = exports.At_blockContext = exports.At_to_multiple_line_expr_to_pinContext = exports.At_to_multiple_line_exprContext = exports.At_to_multiple_exprContext = exports.To_component_exprContext = exports.At_component_exprContext = exports.Pin_select_expr2Context = exports.Component_select_exprContext = exports.Add_component_exprContext = exports.Data_expr_with_assignmentContext = exports.Component_modifier_exprContext = exports.Pin_select_exprContext = exports.Assignment_expr2Context = exports.Property_set_expr2Context = exports.Path_blockContext = exports.Expressions_blockContext = exports.Graph_linear_expressionContext = exports.Graph_expressionsContext = exports.Flow_expressionsContext = exports.ExpressionContext = exports.ScriptContext = exports.CircuitScriptParser = void 0;
27
- exports.Annotation_comment_exprContext = exports.Part_value_exprContext = exports.Part_condition_key_only_exprContext = exports.Part_condition_exprContext = exports.Part_sub_exprContext = exports.Part_match_blockContext = exports.Part_set_keyContext = exports.Part_set_exprContext = exports.For_exprContext = exports.While_exprContext = exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_simpleContext = exports.Import_all_simpleContext = exports.Import_specificContext = exports.Import_exprContext = exports.Point_exprContext = exports.Array_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.GraphicForExprContext = exports.GraphicCommandExprContext = exports.Graphic_exprContext = exports.Nested_properties_innerContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Graphic_expressions_blockContext = exports.Create_component_exprContext = exports.Property_block_exprContext = exports.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_expr2Context = exports.Trailer_exprContext = exports.Atom_exprContext = exports.Function_args_exprContext = void 0;
27
+ exports.Annotation_comment_exprContext = exports.Part_value_exprContext = exports.Part_condition_key_only_exprContext = exports.Part_condition_exprContext = exports.Part_sub_exprContext = exports.Part_match_blockContext = exports.Part_set_keyContext = exports.Part_set_exprContext = exports.For_exprContext = exports.While_exprContext = exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_annotation_exprContext = exports.Import_simpleContext = exports.Import_all_simpleContext = exports.Import_specificContext = exports.Import_exprContext = exports.Point_exprContext = exports.Array_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.GraphicForExprContext = exports.GraphicCommandExprContext = exports.Graphic_exprContext = exports.Nested_properties_innerContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Graphic_expressions_blockContext = exports.Create_component_exprContext = exports.Property_block_exprContext = exports.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_expr2Context = exports.Trailer_exprContext = exports.Atom_exprContext = exports.Function_args_exprContext = void 0;
28
28
  const antlr = __importStar(require("antlr4ng"));
29
29
  class CircuitScriptParser extends antlr.Parser {
30
30
  get grammarFileName() { return "CircuitScript.g4"; }
@@ -47,25 +47,25 @@ class CircuitScriptParser extends antlr.Parser {
47
47
  let alternative;
48
48
  this.enterOuterAlt(localContext, 1);
49
49
  {
50
- this.state = 152;
50
+ this.state = 154;
51
51
  this.errorHandler.sync(this);
52
52
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
53
53
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
54
54
  if (alternative === 1) {
55
55
  {
56
- this.state = 150;
56
+ this.state = 152;
57
57
  this.errorHandler.sync(this);
58
58
  switch (this.tokenStream.LA(1)) {
59
59
  case CircuitScriptParser.Import:
60
60
  case CircuitScriptParser.From:
61
61
  {
62
- this.state = 148;
62
+ this.state = 150;
63
63
  this.import_expr();
64
64
  }
65
65
  break;
66
66
  case CircuitScriptParser.NEWLINE:
67
67
  {
68
- this.state = 149;
68
+ this.state = 151;
69
69
  this.match(CircuitScriptParser.NEWLINE);
70
70
  }
71
71
  break;
@@ -74,16 +74,16 @@ class CircuitScriptParser extends antlr.Parser {
74
74
  }
75
75
  }
76
76
  }
77
- this.state = 154;
77
+ this.state = 156;
78
78
  this.errorHandler.sync(this);
79
79
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
80
80
  }
81
- this.state = 157;
81
+ this.state = 159;
82
82
  this.errorHandler.sync(this);
83
83
  _la = this.tokenStream.LA(1);
84
84
  do {
85
85
  {
86
- this.state = 157;
86
+ this.state = 159;
87
87
  this.errorHandler.sync(this);
88
88
  switch (this.tokenStream.LA(1)) {
89
89
  case CircuitScriptParser.T__3:
@@ -111,13 +111,13 @@ class CircuitScriptParser extends antlr.Parser {
111
111
  case CircuitScriptParser.ANNOTATION_START:
112
112
  case CircuitScriptParser.ID:
113
113
  {
114
- this.state = 155;
114
+ this.state = 157;
115
115
  this.expression();
116
116
  }
117
117
  break;
118
118
  case CircuitScriptParser.NEWLINE:
119
119
  {
120
- this.state = 156;
120
+ this.state = 158;
121
121
  this.match(CircuitScriptParser.NEWLINE);
122
122
  }
123
123
  break;
@@ -125,11 +125,11 @@ class CircuitScriptParser extends antlr.Parser {
125
125
  throw new antlr.NoViableAltException(this);
126
126
  }
127
127
  }
128
- this.state = 159;
128
+ this.state = 161;
129
129
  this.errorHandler.sync(this);
130
130
  _la = this.tokenStream.LA(1);
131
131
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472353393) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 8422405) !== 0));
132
- this.state = 161;
132
+ this.state = 163;
133
133
  this.match(CircuitScriptParser.EOF);
134
134
  }
135
135
  }
@@ -151,104 +151,104 @@ class CircuitScriptParser extends antlr.Parser {
151
151
  let localContext = new ExpressionContext(this.context, this.state);
152
152
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
153
153
  try {
154
- this.state = 177;
154
+ this.state = 179;
155
155
  this.errorHandler.sync(this);
156
156
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
157
157
  case 1:
158
158
  this.enterOuterAlt(localContext, 1);
159
159
  {
160
- this.state = 163;
160
+ this.state = 165;
161
161
  this.graph_expressions();
162
162
  }
163
163
  break;
164
164
  case 2:
165
165
  this.enterOuterAlt(localContext, 2);
166
166
  {
167
- this.state = 164;
167
+ this.state = 166;
168
168
  this.assignment_expr();
169
169
  }
170
170
  break;
171
171
  case 3:
172
172
  this.enterOuterAlt(localContext, 3);
173
173
  {
174
- this.state = 165;
174
+ this.state = 167;
175
175
  this.operator_assignment_expr();
176
176
  }
177
177
  break;
178
178
  case 4:
179
179
  this.enterOuterAlt(localContext, 4);
180
180
  {
181
- this.state = 166;
181
+ this.state = 168;
182
182
  this.property_set_expr();
183
183
  }
184
184
  break;
185
185
  case 5:
186
186
  this.enterOuterAlt(localContext, 5);
187
187
  {
188
- this.state = 167;
188
+ this.state = 169;
189
189
  this.property_set_expr2();
190
190
  }
191
191
  break;
192
192
  case 6:
193
193
  this.enterOuterAlt(localContext, 6);
194
194
  {
195
- this.state = 168;
195
+ this.state = 170;
196
196
  this.double_dot_property_set_expr();
197
197
  }
198
198
  break;
199
199
  case 7:
200
200
  this.enterOuterAlt(localContext, 7);
201
201
  {
202
- this.state = 169;
202
+ this.state = 171;
203
203
  this.function_def_expr();
204
204
  }
205
205
  break;
206
206
  case 8:
207
207
  this.enterOuterAlt(localContext, 8);
208
208
  {
209
- this.state = 170;
209
+ this.state = 172;
210
210
  this.function_call_expr();
211
211
  }
212
212
  break;
213
213
  case 9:
214
214
  this.enterOuterAlt(localContext, 9);
215
215
  {
216
- this.state = 171;
216
+ this.state = 173;
217
217
  this.import_expr();
218
218
  }
219
219
  break;
220
220
  case 10:
221
221
  this.enterOuterAlt(localContext, 10);
222
222
  {
223
- this.state = 172;
223
+ this.state = 174;
224
224
  this.atom_expr();
225
225
  }
226
226
  break;
227
227
  case 11:
228
228
  this.enterOuterAlt(localContext, 11);
229
229
  {
230
- this.state = 173;
230
+ this.state = 175;
231
231
  this.frame_expr();
232
232
  }
233
233
  break;
234
234
  case 12:
235
235
  this.enterOuterAlt(localContext, 12);
236
236
  {
237
- this.state = 174;
237
+ this.state = 176;
238
238
  this.flow_expressions();
239
239
  }
240
240
  break;
241
241
  case 13:
242
242
  this.enterOuterAlt(localContext, 13);
243
243
  {
244
- this.state = 175;
244
+ this.state = 177;
245
245
  this.annotation_comment_expr();
246
246
  }
247
247
  break;
248
248
  case 14:
249
249
  this.enterOuterAlt(localContext, 14);
250
250
  {
251
- this.state = 176;
251
+ this.state = 178;
252
252
  this.part_set_expr();
253
253
  }
254
254
  break;
@@ -272,41 +272,41 @@ class CircuitScriptParser extends antlr.Parser {
272
272
  let localContext = new Flow_expressionsContext(this.context, this.state);
273
273
  this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
274
274
  try {
275
- this.state = 184;
275
+ this.state = 186;
276
276
  this.errorHandler.sync(this);
277
277
  switch (this.tokenStream.LA(1)) {
278
278
  case CircuitScriptParser.If:
279
279
  this.enterOuterAlt(localContext, 1);
280
280
  {
281
- this.state = 179;
281
+ this.state = 181;
282
282
  this.if_expr();
283
283
  }
284
284
  break;
285
285
  case CircuitScriptParser.While:
286
286
  this.enterOuterAlt(localContext, 2);
287
287
  {
288
- this.state = 180;
288
+ this.state = 182;
289
289
  this.while_expr();
290
290
  }
291
291
  break;
292
292
  case CircuitScriptParser.For:
293
293
  this.enterOuterAlt(localContext, 3);
294
294
  {
295
- this.state = 181;
295
+ this.state = 183;
296
296
  this.for_expr();
297
297
  }
298
298
  break;
299
299
  case CircuitScriptParser.Break:
300
300
  this.enterOuterAlt(localContext, 4);
301
301
  {
302
- this.state = 182;
302
+ this.state = 184;
303
303
  this.match(CircuitScriptParser.Break);
304
304
  }
305
305
  break;
306
306
  case CircuitScriptParser.Continue:
307
307
  this.enterOuterAlt(localContext, 5);
308
308
  {
309
- this.state = 183;
309
+ this.state = 185;
310
310
  this.match(CircuitScriptParser.Continue);
311
311
  }
312
312
  break;
@@ -332,20 +332,20 @@ class CircuitScriptParser extends antlr.Parser {
332
332
  let localContext = new Graph_expressionsContext(this.context, this.state);
333
333
  this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
334
334
  try {
335
- this.state = 188;
335
+ this.state = 190;
336
336
  this.errorHandler.sync(this);
337
337
  switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
338
338
  case 1:
339
339
  this.enterOuterAlt(localContext, 1);
340
340
  {
341
- this.state = 186;
341
+ this.state = 188;
342
342
  this.graph_linear_expression();
343
343
  }
344
344
  break;
345
345
  case 2:
346
346
  this.enterOuterAlt(localContext, 2);
347
347
  {
348
- this.state = 187;
348
+ this.state = 189;
349
349
  this.path_block();
350
350
  }
351
351
  break;
@@ -369,48 +369,48 @@ class CircuitScriptParser extends antlr.Parser {
369
369
  let localContext = new Graph_linear_expressionContext(this.context, this.state);
370
370
  this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_linear_expression);
371
371
  try {
372
- this.state = 196;
372
+ this.state = 198;
373
373
  this.errorHandler.sync(this);
374
374
  switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
375
375
  case 1:
376
376
  this.enterOuterAlt(localContext, 1);
377
377
  {
378
- this.state = 190;
378
+ this.state = 192;
379
379
  this.add_component_expr();
380
380
  }
381
381
  break;
382
382
  case 2:
383
383
  this.enterOuterAlt(localContext, 2);
384
384
  {
385
- this.state = 191;
385
+ this.state = 193;
386
386
  this.to_component_expr();
387
387
  }
388
388
  break;
389
389
  case 3:
390
390
  this.enterOuterAlt(localContext, 3);
391
391
  {
392
- this.state = 192;
392
+ this.state = 194;
393
393
  this.at_component_expr();
394
394
  }
395
395
  break;
396
396
  case 4:
397
397
  this.enterOuterAlt(localContext, 4);
398
398
  {
399
- this.state = 193;
399
+ this.state = 195;
400
400
  this.at_block();
401
401
  }
402
402
  break;
403
403
  case 5:
404
404
  this.enterOuterAlt(localContext, 5);
405
405
  {
406
- this.state = 194;
406
+ this.state = 196;
407
407
  this.wire_expr();
408
408
  }
409
409
  break;
410
410
  case 6:
411
411
  this.enterOuterAlt(localContext, 6);
412
412
  {
413
- this.state = 195;
413
+ this.state = 197;
414
414
  this.point_expr();
415
415
  }
416
416
  break;
@@ -437,21 +437,21 @@ class CircuitScriptParser extends antlr.Parser {
437
437
  try {
438
438
  this.enterOuterAlt(localContext, 1);
439
439
  {
440
- this.state = 198;
440
+ this.state = 200;
441
441
  this.match(CircuitScriptParser.NEWLINE);
442
- this.state = 199;
442
+ this.state = 201;
443
443
  this.match(CircuitScriptParser.INDENT);
444
- this.state = 202;
444
+ this.state = 204;
445
445
  this.errorHandler.sync(this);
446
446
  _la = this.tokenStream.LA(1);
447
447
  do {
448
448
  {
449
- this.state = 202;
449
+ this.state = 204;
450
450
  this.errorHandler.sync(this);
451
451
  switch (this.tokenStream.LA(1)) {
452
452
  case CircuitScriptParser.NEWLINE:
453
453
  {
454
- this.state = 200;
454
+ this.state = 202;
455
455
  this.match(CircuitScriptParser.NEWLINE);
456
456
  }
457
457
  break;
@@ -480,7 +480,7 @@ class CircuitScriptParser extends antlr.Parser {
480
480
  case CircuitScriptParser.ANNOTATION_START:
481
481
  case CircuitScriptParser.ID:
482
482
  {
483
- this.state = 201;
483
+ this.state = 203;
484
484
  this.expression();
485
485
  }
486
486
  break;
@@ -488,11 +488,11 @@ class CircuitScriptParser extends antlr.Parser {
488
488
  throw new antlr.NoViableAltException(this);
489
489
  }
490
490
  }
491
- this.state = 204;
491
+ this.state = 206;
492
492
  this.errorHandler.sync(this);
493
493
  _la = this.tokenStream.LA(1);
494
494
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472353393) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 8422405) !== 0));
495
- this.state = 206;
495
+ this.state = 208;
496
496
  this.match(CircuitScriptParser.DEDENT);
497
497
  }
498
498
  }
@@ -517,7 +517,7 @@ class CircuitScriptParser extends antlr.Parser {
517
517
  try {
518
518
  this.enterOuterAlt(localContext, 1);
519
519
  {
520
- this.state = 208;
520
+ this.state = 210;
521
521
  _la = this.tokenStream.LA(1);
522
522
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 7341056) !== 0))) {
523
523
  this.errorHandler.recoverInline(this);
@@ -526,9 +526,9 @@ class CircuitScriptParser extends antlr.Parser {
526
526
  this.errorHandler.reportMatch(this);
527
527
  this.consume();
528
528
  }
529
- this.state = 209;
529
+ this.state = 211;
530
530
  this.match(CircuitScriptParser.T__0);
531
- this.state = 210;
531
+ this.state = 212;
532
532
  this.expressions_block();
533
533
  }
534
534
  }
@@ -553,32 +553,32 @@ class CircuitScriptParser extends antlr.Parser {
553
553
  try {
554
554
  this.enterOuterAlt(localContext, 1);
555
555
  {
556
- this.state = 212;
556
+ this.state = 214;
557
557
  this.atom_expr();
558
- this.state = 213;
558
+ this.state = 215;
559
559
  this.match(CircuitScriptParser.T__0);
560
- this.state = 214;
560
+ this.state = 216;
561
561
  this.match(CircuitScriptParser.NEWLINE);
562
- this.state = 215;
562
+ this.state = 217;
563
563
  this.match(CircuitScriptParser.INDENT);
564
- this.state = 218;
564
+ this.state = 220;
565
565
  this.errorHandler.sync(this);
566
566
  _la = this.tokenStream.LA(1);
567
567
  do {
568
568
  {
569
- this.state = 218;
569
+ this.state = 220;
570
570
  this.errorHandler.sync(this);
571
571
  switch (this.tokenStream.LA(1)) {
572
572
  case CircuitScriptParser.NEWLINE:
573
573
  {
574
- this.state = 216;
574
+ this.state = 218;
575
575
  this.match(CircuitScriptParser.NEWLINE);
576
576
  }
577
577
  break;
578
578
  case CircuitScriptParser.ID:
579
579
  case CircuitScriptParser.INTEGER_VALUE:
580
580
  {
581
- this.state = 217;
581
+ this.state = 219;
582
582
  this.assignment_expr2();
583
583
  }
584
584
  break;
@@ -586,11 +586,11 @@ class CircuitScriptParser extends antlr.Parser {
586
586
  throw new antlr.NoViableAltException(this);
587
587
  }
588
588
  }
589
- this.state = 220;
589
+ this.state = 222;
590
590
  this.errorHandler.sync(this);
591
591
  _la = this.tokenStream.LA(1);
592
592
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 259) !== 0));
593
- this.state = 222;
593
+ this.state = 224;
594
594
  this.match(CircuitScriptParser.DEDENT);
595
595
  }
596
596
  }
@@ -615,7 +615,7 @@ class CircuitScriptParser extends antlr.Parser {
615
615
  try {
616
616
  this.enterOuterAlt(localContext, 1);
617
617
  {
618
- this.state = 224;
618
+ this.state = 226;
619
619
  _la = this.tokenStream.LA(1);
620
620
  if (!(_la === 59 || _la === 60)) {
621
621
  this.errorHandler.recoverInline(this);
@@ -624,9 +624,9 @@ class CircuitScriptParser extends antlr.Parser {
624
624
  this.errorHandler.reportMatch(this);
625
625
  this.consume();
626
626
  }
627
- this.state = 225;
627
+ this.state = 227;
628
628
  this.match(CircuitScriptParser.T__0);
629
- this.state = 226;
629
+ this.state = 228;
630
630
  this.value_expr();
631
631
  }
632
632
  }
@@ -650,9 +650,9 @@ class CircuitScriptParser extends antlr.Parser {
650
650
  try {
651
651
  this.enterOuterAlt(localContext, 1);
652
652
  {
653
- this.state = 228;
653
+ this.state = 230;
654
654
  this.match(CircuitScriptParser.Pin);
655
- this.state = 229;
655
+ this.state = 231;
656
656
  this.data_expr(0);
657
657
  }
658
658
  }
@@ -676,11 +676,11 @@ class CircuitScriptParser extends antlr.Parser {
676
676
  try {
677
677
  this.enterOuterAlt(localContext, 1);
678
678
  {
679
- this.state = 231;
679
+ this.state = 233;
680
680
  this.match(CircuitScriptParser.ID);
681
- this.state = 232;
681
+ this.state = 234;
682
682
  this.match(CircuitScriptParser.T__0);
683
- this.state = 235;
683
+ this.state = 237;
684
684
  this.errorHandler.sync(this);
685
685
  switch (this.tokenStream.LA(1)) {
686
686
  case CircuitScriptParser.Minus:
@@ -691,13 +691,13 @@ class CircuitScriptParser extends antlr.Parser {
691
691
  case CircuitScriptParser.STRING_VALUE:
692
692
  case CircuitScriptParser.PERCENTAGE_VALUE:
693
693
  {
694
- this.state = 233;
694
+ this.state = 235;
695
695
  this.value_expr();
696
696
  }
697
697
  break;
698
698
  case CircuitScriptParser.ID:
699
699
  {
700
- this.state = 234;
700
+ this.state = 236;
701
701
  this.match(CircuitScriptParser.ID);
702
702
  }
703
703
  break;
@@ -728,44 +728,44 @@ class CircuitScriptParser extends antlr.Parser {
728
728
  let alternative;
729
729
  this.enterOuterAlt(localContext, 1);
730
730
  {
731
- this.state = 239;
731
+ this.state = 241;
732
732
  this.errorHandler.sync(this);
733
733
  switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
734
734
  case 1:
735
735
  {
736
- this.state = 237;
736
+ this.state = 239;
737
737
  this.data_expr(0);
738
738
  }
739
739
  break;
740
740
  case 2:
741
741
  {
742
- this.state = 238;
742
+ this.state = 240;
743
743
  this.assignment_expr();
744
744
  }
745
745
  break;
746
746
  }
747
- this.state = 244;
747
+ this.state = 246;
748
748
  this.errorHandler.sync(this);
749
749
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
750
750
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
751
751
  if (alternative === 1) {
752
752
  {
753
753
  {
754
- this.state = 241;
754
+ this.state = 243;
755
755
  this.component_modifier_expr();
756
756
  }
757
757
  }
758
758
  }
759
- this.state = 246;
759
+ this.state = 248;
760
760
  this.errorHandler.sync(this);
761
761
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
762
762
  }
763
- this.state = 248;
763
+ this.state = 250;
764
764
  this.errorHandler.sync(this);
765
765
  _la = this.tokenStream.LA(1);
766
766
  if (_la === 16) {
767
767
  {
768
- this.state = 247;
768
+ this.state = 249;
769
769
  this.pin_select_expr();
770
770
  }
771
771
  }
@@ -791,9 +791,9 @@ class CircuitScriptParser extends antlr.Parser {
791
791
  try {
792
792
  this.enterOuterAlt(localContext, 1);
793
793
  {
794
- this.state = 250;
794
+ this.state = 252;
795
795
  this.match(CircuitScriptParser.Add);
796
- this.state = 251;
796
+ this.state = 253;
797
797
  this.data_expr_with_assignment();
798
798
  }
799
799
  }
@@ -815,7 +815,7 @@ class CircuitScriptParser extends antlr.Parser {
815
815
  let localContext = new Component_select_exprContext(this.context, this.state);
816
816
  this.enterRule(localContext, 26, CircuitScriptParser.RULE_component_select_expr);
817
817
  try {
818
- this.state = 256;
818
+ this.state = 258;
819
819
  this.errorHandler.sync(this);
820
820
  switch (this.tokenStream.LA(1)) {
821
821
  case CircuitScriptParser.T__4:
@@ -834,21 +834,21 @@ class CircuitScriptParser extends antlr.Parser {
834
834
  case CircuitScriptParser.PERCENTAGE_VALUE:
835
835
  this.enterOuterAlt(localContext, 1);
836
836
  {
837
- this.state = 253;
837
+ this.state = 255;
838
838
  this.data_expr_with_assignment();
839
839
  }
840
840
  break;
841
841
  case CircuitScriptParser.Pin:
842
842
  this.enterOuterAlt(localContext, 2);
843
843
  {
844
- this.state = 254;
844
+ this.state = 256;
845
845
  this.pin_select_expr();
846
846
  }
847
847
  break;
848
848
  case CircuitScriptParser.Point:
849
849
  this.enterOuterAlt(localContext, 3);
850
850
  {
851
- this.state = 255;
851
+ this.state = 257;
852
852
  this.match(CircuitScriptParser.Point);
853
853
  }
854
854
  break;
@@ -877,7 +877,7 @@ class CircuitScriptParser extends antlr.Parser {
877
877
  try {
878
878
  this.enterOuterAlt(localContext, 1);
879
879
  {
880
- this.state = 258;
880
+ this.state = 260;
881
881
  _la = this.tokenStream.LA(1);
882
882
  if (!(_la === 60 || _la === 63)) {
883
883
  this.errorHandler.recoverInline(this);
@@ -908,9 +908,9 @@ class CircuitScriptParser extends antlr.Parser {
908
908
  try {
909
909
  this.enterOuterAlt(localContext, 1);
910
910
  {
911
- this.state = 260;
911
+ this.state = 262;
912
912
  this.match(CircuitScriptParser.At);
913
- this.state = 261;
913
+ this.state = 263;
914
914
  this.component_select_expr();
915
915
  }
916
916
  }
@@ -935,24 +935,24 @@ class CircuitScriptParser extends antlr.Parser {
935
935
  try {
936
936
  this.enterOuterAlt(localContext, 1);
937
937
  {
938
- this.state = 263;
938
+ this.state = 265;
939
939
  this.match(CircuitScriptParser.To);
940
940
  {
941
- this.state = 264;
941
+ this.state = 266;
942
942
  this.component_select_expr();
943
- this.state = 269;
943
+ this.state = 271;
944
944
  this.errorHandler.sync(this);
945
945
  _la = this.tokenStream.LA(1);
946
946
  while (_la === 2) {
947
947
  {
948
948
  {
949
- this.state = 265;
949
+ this.state = 267;
950
950
  this.match(CircuitScriptParser.T__1);
951
- this.state = 266;
951
+ this.state = 268;
952
952
  this.component_select_expr();
953
953
  }
954
954
  }
955
- this.state = 271;
955
+ this.state = 273;
956
956
  this.errorHandler.sync(this);
957
957
  _la = this.tokenStream.LA(1);
958
958
  }
@@ -980,54 +980,54 @@ class CircuitScriptParser extends antlr.Parser {
980
980
  try {
981
981
  this.enterOuterAlt(localContext, 1);
982
982
  {
983
- this.state = 272;
983
+ this.state = 274;
984
984
  this.match(CircuitScriptParser.At);
985
- this.state = 273;
985
+ this.state = 275;
986
986
  this.component_select_expr();
987
- this.state = 274;
987
+ this.state = 276;
988
988
  this.match(CircuitScriptParser.To);
989
- this.state = 275;
989
+ this.state = 277;
990
990
  this.component_select_expr();
991
- this.state = 280;
991
+ this.state = 282;
992
992
  this.errorHandler.sync(this);
993
993
  _la = this.tokenStream.LA(1);
994
994
  while (_la === 2) {
995
995
  {
996
996
  {
997
- this.state = 276;
997
+ this.state = 278;
998
998
  this.match(CircuitScriptParser.T__1);
999
- this.state = 277;
999
+ this.state = 279;
1000
1000
  this.component_select_expr();
1001
1001
  }
1002
1002
  }
1003
- this.state = 282;
1003
+ this.state = 284;
1004
1004
  this.errorHandler.sync(this);
1005
1005
  _la = this.tokenStream.LA(1);
1006
1006
  }
1007
- this.state = 283;
1007
+ this.state = 285;
1008
1008
  this.match(CircuitScriptParser.T__0);
1009
- this.state = 284;
1009
+ this.state = 286;
1010
1010
  this.match(CircuitScriptParser.NEWLINE);
1011
- this.state = 285;
1011
+ this.state = 287;
1012
1012
  this.match(CircuitScriptParser.INDENT);
1013
- this.state = 288;
1013
+ this.state = 290;
1014
1014
  this.errorHandler.sync(this);
1015
1015
  _la = this.tokenStream.LA(1);
1016
1016
  do {
1017
1017
  {
1018
- this.state = 288;
1018
+ this.state = 290;
1019
1019
  this.errorHandler.sync(this);
1020
1020
  switch (this.tokenStream.LA(1)) {
1021
1021
  case CircuitScriptParser.NEWLINE:
1022
1022
  {
1023
- this.state = 286;
1023
+ this.state = 288;
1024
1024
  this.match(CircuitScriptParser.NEWLINE);
1025
1025
  }
1026
1026
  break;
1027
1027
  case CircuitScriptParser.INTEGER_VALUE:
1028
1028
  case CircuitScriptParser.STRING_VALUE:
1029
1029
  {
1030
- this.state = 287;
1030
+ this.state = 289;
1031
1031
  this.at_to_multiple_line_expr();
1032
1032
  }
1033
1033
  break;
@@ -1035,11 +1035,11 @@ class CircuitScriptParser extends antlr.Parser {
1035
1035
  throw new antlr.NoViableAltException(this);
1036
1036
  }
1037
1037
  }
1038
- this.state = 290;
1038
+ this.state = 292;
1039
1039
  this.errorHandler.sync(this);
1040
1040
  _la = this.tokenStream.LA(1);
1041
1041
  } while (((((_la - 60)) & ~0x1F) === 0 && ((1 << (_la - 60)) & 137) !== 0));
1042
- this.state = 292;
1042
+ this.state = 294;
1043
1043
  this.match(CircuitScriptParser.DEDENT);
1044
1044
  }
1045
1045
  }
@@ -1064,25 +1064,25 @@ class CircuitScriptParser extends antlr.Parser {
1064
1064
  try {
1065
1065
  this.enterOuterAlt(localContext, 1);
1066
1066
  {
1067
- this.state = 294;
1067
+ this.state = 296;
1068
1068
  this.pin_select_expr2();
1069
- this.state = 295;
1069
+ this.state = 297;
1070
1070
  this.match(CircuitScriptParser.T__0);
1071
- this.state = 296;
1071
+ this.state = 298;
1072
1072
  this.at_to_multiple_line_expr_to_pin();
1073
- this.state = 301;
1073
+ this.state = 303;
1074
1074
  this.errorHandler.sync(this);
1075
1075
  _la = this.tokenStream.LA(1);
1076
1076
  while (_la === 2) {
1077
1077
  {
1078
1078
  {
1079
- this.state = 297;
1079
+ this.state = 299;
1080
1080
  this.match(CircuitScriptParser.T__1);
1081
- this.state = 298;
1081
+ this.state = 300;
1082
1082
  this.at_to_multiple_line_expr_to_pin();
1083
1083
  }
1084
1084
  }
1085
- this.state = 303;
1085
+ this.state = 305;
1086
1086
  this.errorHandler.sync(this);
1087
1087
  _la = this.tokenStream.LA(1);
1088
1088
  }
@@ -1109,7 +1109,7 @@ class CircuitScriptParser extends antlr.Parser {
1109
1109
  try {
1110
1110
  this.enterOuterAlt(localContext, 1);
1111
1111
  {
1112
- this.state = 304;
1112
+ this.state = 306;
1113
1113
  _la = this.tokenStream.LA(1);
1114
1114
  if (!(_la === 57 || _la === 60)) {
1115
1115
  this.errorHandler.recoverInline(this);
@@ -1141,23 +1141,23 @@ class CircuitScriptParser extends antlr.Parser {
1141
1141
  try {
1142
1142
  this.enterOuterAlt(localContext, 1);
1143
1143
  {
1144
- this.state = 306;
1144
+ this.state = 308;
1145
1145
  this.at_block_header();
1146
- this.state = 307;
1146
+ this.state = 309;
1147
1147
  this.match(CircuitScriptParser.NEWLINE);
1148
- this.state = 308;
1148
+ this.state = 310;
1149
1149
  this.match(CircuitScriptParser.INDENT);
1150
- this.state = 311;
1150
+ this.state = 313;
1151
1151
  this.errorHandler.sync(this);
1152
1152
  _la = this.tokenStream.LA(1);
1153
1153
  do {
1154
1154
  {
1155
- this.state = 311;
1155
+ this.state = 313;
1156
1156
  this.errorHandler.sync(this);
1157
1157
  switch (this.tokenStream.LA(1)) {
1158
1158
  case CircuitScriptParser.NEWLINE:
1159
1159
  {
1160
- this.state = 309;
1160
+ this.state = 311;
1161
1161
  this.match(CircuitScriptParser.NEWLINE);
1162
1162
  }
1163
1163
  break;
@@ -1188,7 +1188,7 @@ class CircuitScriptParser extends antlr.Parser {
1188
1188
  case CircuitScriptParser.INTEGER_VALUE:
1189
1189
  case CircuitScriptParser.STRING_VALUE:
1190
1190
  {
1191
- this.state = 310;
1191
+ this.state = 312;
1192
1192
  this.at_block_expressions();
1193
1193
  }
1194
1194
  break;
@@ -1196,11 +1196,11 @@ class CircuitScriptParser extends antlr.Parser {
1196
1196
  throw new antlr.NoViableAltException(this);
1197
1197
  }
1198
1198
  }
1199
- this.state = 313;
1199
+ this.state = 315;
1200
1200
  this.errorHandler.sync(this);
1201
1201
  _la = this.tokenStream.LA(1);
1202
1202
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472353393) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 9012229) !== 0));
1203
- this.state = 315;
1203
+ this.state = 317;
1204
1204
  this.match(CircuitScriptParser.DEDENT);
1205
1205
  }
1206
1206
  }
@@ -1222,7 +1222,7 @@ class CircuitScriptParser extends antlr.Parser {
1222
1222
  let localContext = new At_block_expressionsContext(this.context, this.state);
1223
1223
  this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_expressions);
1224
1224
  try {
1225
- this.state = 319;
1225
+ this.state = 321;
1226
1226
  this.errorHandler.sync(this);
1227
1227
  switch (this.tokenStream.LA(1)) {
1228
1228
  case CircuitScriptParser.T__3:
@@ -1251,7 +1251,7 @@ class CircuitScriptParser extends antlr.Parser {
1251
1251
  case CircuitScriptParser.ID:
1252
1252
  this.enterOuterAlt(localContext, 1);
1253
1253
  {
1254
- this.state = 317;
1254
+ this.state = 319;
1255
1255
  this.expression();
1256
1256
  }
1257
1257
  break;
@@ -1259,7 +1259,7 @@ class CircuitScriptParser extends antlr.Parser {
1259
1259
  case CircuitScriptParser.STRING_VALUE:
1260
1260
  this.enterOuterAlt(localContext, 2);
1261
1261
  {
1262
- this.state = 318;
1262
+ this.state = 320;
1263
1263
  this.at_block_pin_expr();
1264
1264
  }
1265
1265
  break;
@@ -1288,21 +1288,21 @@ class CircuitScriptParser extends antlr.Parser {
1288
1288
  try {
1289
1289
  this.enterOuterAlt(localContext, 1);
1290
1290
  {
1291
- this.state = 321;
1291
+ this.state = 323;
1292
1292
  this.at_component_expr();
1293
- this.state = 322;
1293
+ this.state = 324;
1294
1294
  this.match(CircuitScriptParser.T__0);
1295
- this.state = 326;
1295
+ this.state = 328;
1296
1296
  this.errorHandler.sync(this);
1297
1297
  _la = this.tokenStream.LA(1);
1298
1298
  while (_la === 54) {
1299
1299
  {
1300
1300
  {
1301
- this.state = 323;
1301
+ this.state = 325;
1302
1302
  this.annotation_comment_expr();
1303
1303
  }
1304
1304
  }
1305
- this.state = 328;
1305
+ this.state = 330;
1306
1306
  this.errorHandler.sync(this);
1307
1307
  _la = this.tokenStream.LA(1);
1308
1308
  }
@@ -1328,11 +1328,11 @@ class CircuitScriptParser extends antlr.Parser {
1328
1328
  try {
1329
1329
  this.enterOuterAlt(localContext, 1);
1330
1330
  {
1331
- this.state = 329;
1331
+ this.state = 331;
1332
1332
  this.pin_select_expr2();
1333
- this.state = 330;
1333
+ this.state = 332;
1334
1334
  this.match(CircuitScriptParser.T__0);
1335
- this.state = 333;
1335
+ this.state = 335;
1336
1336
  this.errorHandler.sync(this);
1337
1337
  switch (this.tokenStream.LA(1)) {
1338
1338
  case CircuitScriptParser.T__3:
@@ -1361,13 +1361,13 @@ class CircuitScriptParser extends antlr.Parser {
1361
1361
  case CircuitScriptParser.NOT_CONNECTED:
1362
1362
  case CircuitScriptParser.ID:
1363
1363
  {
1364
- this.state = 331;
1364
+ this.state = 333;
1365
1365
  this.at_block_pin_expression_simple();
1366
1366
  }
1367
1367
  break;
1368
1368
  case CircuitScriptParser.NEWLINE:
1369
1369
  {
1370
- this.state = 332;
1370
+ this.state = 334;
1371
1371
  this.at_block_pin_expression_complex();
1372
1372
  }
1373
1373
  break;
@@ -1396,7 +1396,7 @@ class CircuitScriptParser extends antlr.Parser {
1396
1396
  try {
1397
1397
  this.enterOuterAlt(localContext, 1);
1398
1398
  {
1399
- this.state = 337;
1399
+ this.state = 339;
1400
1400
  this.errorHandler.sync(this);
1401
1401
  switch (this.tokenStream.LA(1)) {
1402
1402
  case CircuitScriptParser.T__3:
@@ -1424,13 +1424,13 @@ class CircuitScriptParser extends antlr.Parser {
1424
1424
  case CircuitScriptParser.ANNOTATION_START:
1425
1425
  case CircuitScriptParser.ID:
1426
1426
  {
1427
- this.state = 335;
1427
+ this.state = 337;
1428
1428
  this.expression();
1429
1429
  }
1430
1430
  break;
1431
1431
  case CircuitScriptParser.NOT_CONNECTED:
1432
1432
  {
1433
- this.state = 336;
1433
+ this.state = 338;
1434
1434
  this.match(CircuitScriptParser.NOT_CONNECTED);
1435
1435
  }
1436
1436
  break;
@@ -1459,7 +1459,7 @@ class CircuitScriptParser extends antlr.Parser {
1459
1459
  try {
1460
1460
  this.enterOuterAlt(localContext, 1);
1461
1461
  {
1462
- this.state = 339;
1462
+ this.state = 341;
1463
1463
  this.expressions_block();
1464
1464
  }
1465
1465
  }
@@ -1483,25 +1483,25 @@ class CircuitScriptParser extends antlr.Parser {
1483
1483
  try {
1484
1484
  this.enterOuterAlt(localContext, 1);
1485
1485
  {
1486
- this.state = 343;
1486
+ this.state = 345;
1487
1487
  this.errorHandler.sync(this);
1488
1488
  switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1489
1489
  case 1:
1490
1490
  {
1491
- this.state = 341;
1491
+ this.state = 343;
1492
1492
  this.atom_expr();
1493
1493
  }
1494
1494
  break;
1495
1495
  case 2:
1496
1496
  {
1497
- this.state = 342;
1497
+ this.state = 344;
1498
1498
  this.function_call_expr();
1499
1499
  }
1500
1500
  break;
1501
1501
  }
1502
- this.state = 345;
1502
+ this.state = 347;
1503
1503
  this.match(CircuitScriptParser.T__2);
1504
- this.state = 346;
1504
+ this.state = 348;
1505
1505
  this.data_expr(0);
1506
1506
  }
1507
1507
  }
@@ -1526,9 +1526,9 @@ class CircuitScriptParser extends antlr.Parser {
1526
1526
  try {
1527
1527
  this.enterOuterAlt(localContext, 1);
1528
1528
  {
1529
- this.state = 348;
1529
+ this.state = 350;
1530
1530
  this.atom_expr();
1531
- this.state = 349;
1531
+ this.state = 351;
1532
1532
  _la = this.tokenStream.LA(1);
1533
1533
  if (!(((((_la - 49)) & ~0x1F) === 0 && ((1 << (_la - 49)) & 31) !== 0))) {
1534
1534
  this.errorHandler.recoverInline(this);
@@ -1537,7 +1537,7 @@ class CircuitScriptParser extends antlr.Parser {
1537
1537
  this.errorHandler.reportMatch(this);
1538
1538
  this.consume();
1539
1539
  }
1540
- this.state = 350;
1540
+ this.state = 352;
1541
1541
  this.data_expr(0);
1542
1542
  }
1543
1543
  }
@@ -1561,11 +1561,11 @@ class CircuitScriptParser extends antlr.Parser {
1561
1561
  try {
1562
1562
  this.enterOuterAlt(localContext, 1);
1563
1563
  {
1564
- this.state = 352;
1564
+ this.state = 354;
1565
1565
  this.match(CircuitScriptParser.ID);
1566
- this.state = 353;
1566
+ this.state = 355;
1567
1567
  this.match(CircuitScriptParser.T__2);
1568
- this.state = 354;
1568
+ this.state = 356;
1569
1569
  this.data_expr(0);
1570
1570
  }
1571
1571
  }
@@ -1589,46 +1589,46 @@ class CircuitScriptParser extends antlr.Parser {
1589
1589
  let _la;
1590
1590
  try {
1591
1591
  let alternative;
1592
- this.state = 379;
1592
+ this.state = 381;
1593
1593
  this.errorHandler.sync(this);
1594
1594
  switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1595
1595
  case 1:
1596
1596
  this.enterOuterAlt(localContext, 1);
1597
1597
  {
1598
1598
  {
1599
- this.state = 356;
1599
+ this.state = 358;
1600
1600
  this.data_expr(0);
1601
- this.state = 361;
1601
+ this.state = 363;
1602
1602
  this.errorHandler.sync(this);
1603
1603
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1604
1604
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1605
1605
  if (alternative === 1) {
1606
1606
  {
1607
1607
  {
1608
- this.state = 357;
1608
+ this.state = 359;
1609
1609
  this.match(CircuitScriptParser.T__1);
1610
- this.state = 358;
1610
+ this.state = 360;
1611
1611
  this.data_expr(0);
1612
1612
  }
1613
1613
  }
1614
1614
  }
1615
- this.state = 363;
1615
+ this.state = 365;
1616
1616
  this.errorHandler.sync(this);
1617
1617
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1618
1618
  }
1619
- this.state = 368;
1619
+ this.state = 370;
1620
1620
  this.errorHandler.sync(this);
1621
1621
  _la = this.tokenStream.LA(1);
1622
1622
  while (_la === 2) {
1623
1623
  {
1624
1624
  {
1625
- this.state = 364;
1625
+ this.state = 366;
1626
1626
  this.match(CircuitScriptParser.T__1);
1627
- this.state = 365;
1627
+ this.state = 367;
1628
1628
  this.keyword_assignment_expr();
1629
1629
  }
1630
1630
  }
1631
- this.state = 370;
1631
+ this.state = 372;
1632
1632
  this.errorHandler.sync(this);
1633
1633
  _la = this.tokenStream.LA(1);
1634
1634
  }
@@ -1639,21 +1639,21 @@ class CircuitScriptParser extends antlr.Parser {
1639
1639
  this.enterOuterAlt(localContext, 2);
1640
1640
  {
1641
1641
  {
1642
- this.state = 371;
1642
+ this.state = 373;
1643
1643
  this.keyword_assignment_expr();
1644
- this.state = 376;
1644
+ this.state = 378;
1645
1645
  this.errorHandler.sync(this);
1646
1646
  _la = this.tokenStream.LA(1);
1647
1647
  while (_la === 2) {
1648
1648
  {
1649
1649
  {
1650
- this.state = 372;
1650
+ this.state = 374;
1651
1651
  this.match(CircuitScriptParser.T__1);
1652
- this.state = 373;
1652
+ this.state = 375;
1653
1653
  this.keyword_assignment_expr();
1654
1654
  }
1655
1655
  }
1656
- this.state = 378;
1656
+ this.state = 380;
1657
1657
  this.errorHandler.sync(this);
1658
1658
  _la = this.tokenStream.LA(1);
1659
1659
  }
@@ -1682,11 +1682,11 @@ class CircuitScriptParser extends antlr.Parser {
1682
1682
  try {
1683
1683
  this.enterOuterAlt(localContext, 1);
1684
1684
  {
1685
- this.state = 381;
1685
+ this.state = 383;
1686
1686
  this.atom_expr();
1687
- this.state = 382;
1687
+ this.state = 384;
1688
1688
  this.match(CircuitScriptParser.T__2);
1689
- this.state = 383;
1689
+ this.state = 385;
1690
1690
  this.data_expr(0);
1691
1691
  }
1692
1692
  }
@@ -1710,13 +1710,13 @@ class CircuitScriptParser extends antlr.Parser {
1710
1710
  try {
1711
1711
  this.enterOuterAlt(localContext, 1);
1712
1712
  {
1713
- this.state = 385;
1713
+ this.state = 387;
1714
1714
  this.match(CircuitScriptParser.T__3);
1715
- this.state = 386;
1715
+ this.state = 388;
1716
1716
  this.match(CircuitScriptParser.ID);
1717
- this.state = 387;
1717
+ this.state = 389;
1718
1718
  this.match(CircuitScriptParser.T__2);
1719
- this.state = 388;
1719
+ this.state = 390;
1720
1720
  this.data_expr(0);
1721
1721
  }
1722
1722
  }
@@ -1749,7 +1749,7 @@ class CircuitScriptParser extends antlr.Parser {
1749
1749
  let alternative;
1750
1750
  this.enterOuterAlt(localContext, 1);
1751
1751
  {
1752
- this.state = 407;
1752
+ this.state = 409;
1753
1753
  this.errorHandler.sync(this);
1754
1754
  switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1755
1755
  case 1:
@@ -1757,11 +1757,11 @@ class CircuitScriptParser extends antlr.Parser {
1757
1757
  localContext = new RoundedBracketsExprContext(localContext);
1758
1758
  this.context = localContext;
1759
1759
  previousContext = localContext;
1760
- this.state = 391;
1760
+ this.state = 393;
1761
1761
  this.match(CircuitScriptParser.OPEN_PAREN);
1762
- this.state = 392;
1762
+ this.state = 394;
1763
1763
  this.data_expr(0);
1764
- this.state = 393;
1764
+ this.state = 395;
1765
1765
  this.match(CircuitScriptParser.CLOSE_PAREN);
1766
1766
  }
1767
1767
  break;
@@ -1770,7 +1770,7 @@ class CircuitScriptParser extends antlr.Parser {
1770
1770
  localContext = new ValueAtomExprContext(localContext);
1771
1771
  this.context = localContext;
1772
1772
  previousContext = localContext;
1773
- this.state = 397;
1773
+ this.state = 399;
1774
1774
  this.errorHandler.sync(this);
1775
1775
  switch (this.tokenStream.LA(1)) {
1776
1776
  case CircuitScriptParser.Minus:
@@ -1781,13 +1781,13 @@ class CircuitScriptParser extends antlr.Parser {
1781
1781
  case CircuitScriptParser.STRING_VALUE:
1782
1782
  case CircuitScriptParser.PERCENTAGE_VALUE:
1783
1783
  {
1784
- this.state = 395;
1784
+ this.state = 397;
1785
1785
  this.value_expr();
1786
1786
  }
1787
1787
  break;
1788
1788
  case CircuitScriptParser.ID:
1789
1789
  {
1790
- this.state = 396;
1790
+ this.state = 398;
1791
1791
  this.atom_expr();
1792
1792
  }
1793
1793
  break;
@@ -1801,9 +1801,9 @@ class CircuitScriptParser extends antlr.Parser {
1801
1801
  localContext = new UnaryOperatorExprContext(localContext);
1802
1802
  this.context = localContext;
1803
1803
  previousContext = localContext;
1804
- this.state = 399;
1804
+ this.state = 401;
1805
1805
  this.unary_operator();
1806
- this.state = 400;
1806
+ this.state = 402;
1807
1807
  this.data_expr(11);
1808
1808
  }
1809
1809
  break;
@@ -1812,7 +1812,7 @@ class CircuitScriptParser extends antlr.Parser {
1812
1812
  localContext = new DataExprContext(localContext);
1813
1813
  this.context = localContext;
1814
1814
  previousContext = localContext;
1815
- this.state = 402;
1815
+ this.state = 404;
1816
1816
  this.create_component_expr();
1817
1817
  }
1818
1818
  break;
@@ -1821,7 +1821,7 @@ class CircuitScriptParser extends antlr.Parser {
1821
1821
  localContext = new DataExprContext(localContext);
1822
1822
  this.context = localContext;
1823
1823
  previousContext = localContext;
1824
- this.state = 403;
1824
+ this.state = 405;
1825
1825
  this.create_graphic_expr();
1826
1826
  }
1827
1827
  break;
@@ -1830,7 +1830,7 @@ class CircuitScriptParser extends antlr.Parser {
1830
1830
  localContext = new DataExprContext(localContext);
1831
1831
  this.context = localContext;
1832
1832
  previousContext = localContext;
1833
- this.state = 404;
1833
+ this.state = 406;
1834
1834
  this.create_module_expr();
1835
1835
  }
1836
1836
  break;
@@ -1839,7 +1839,7 @@ class CircuitScriptParser extends antlr.Parser {
1839
1839
  localContext = new FunctionCallExprContext(localContext);
1840
1840
  this.context = localContext;
1841
1841
  previousContext = localContext;
1842
- this.state = 405;
1842
+ this.state = 407;
1843
1843
  this.function_call_expr();
1844
1844
  }
1845
1845
  break;
@@ -1848,13 +1848,13 @@ class CircuitScriptParser extends antlr.Parser {
1848
1848
  localContext = new ArrayExprContext(localContext);
1849
1849
  this.context = localContext;
1850
1850
  previousContext = localContext;
1851
- this.state = 406;
1851
+ this.state = 408;
1852
1852
  this.array_expr();
1853
1853
  }
1854
1854
  break;
1855
1855
  }
1856
1856
  this.context.stop = this.tokenStream.LT(-1);
1857
- this.state = 429;
1857
+ this.state = 431;
1858
1858
  this.errorHandler.sync(this);
1859
1859
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
1860
1860
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -1864,18 +1864,18 @@ class CircuitScriptParser extends antlr.Parser {
1864
1864
  }
1865
1865
  previousContext = localContext;
1866
1866
  {
1867
- this.state = 427;
1867
+ this.state = 429;
1868
1868
  this.errorHandler.sync(this);
1869
1869
  switch (this.interpreter.adaptivePredict(this.tokenStream, 35, this.context)) {
1870
1870
  case 1:
1871
1871
  {
1872
1872
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1873
1873
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1874
- this.state = 409;
1874
+ this.state = 411;
1875
1875
  if (!(this.precpred(this.context, 10))) {
1876
1876
  throw this.createFailedPredicateException("this.precpred(this.context, 10)");
1877
1877
  }
1878
- this.state = 410;
1878
+ this.state = 412;
1879
1879
  _la = this.tokenStream.LA(1);
1880
1880
  if (!(((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 7) !== 0))) {
1881
1881
  this.errorHandler.recoverInline(this);
@@ -1884,7 +1884,7 @@ class CircuitScriptParser extends antlr.Parser {
1884
1884
  this.errorHandler.reportMatch(this);
1885
1885
  this.consume();
1886
1886
  }
1887
- this.state = 411;
1887
+ this.state = 413;
1888
1888
  this.data_expr(11);
1889
1889
  }
1890
1890
  break;
@@ -1892,11 +1892,11 @@ class CircuitScriptParser extends antlr.Parser {
1892
1892
  {
1893
1893
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1894
1894
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1895
- this.state = 412;
1895
+ this.state = 414;
1896
1896
  if (!(this.precpred(this.context, 9))) {
1897
1897
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1898
1898
  }
1899
- this.state = 413;
1899
+ this.state = 415;
1900
1900
  _la = this.tokenStream.LA(1);
1901
1901
  if (!(_la === 44 || _la === 45)) {
1902
1902
  this.errorHandler.recoverInline(this);
@@ -1905,7 +1905,7 @@ class CircuitScriptParser extends antlr.Parser {
1905
1905
  this.errorHandler.reportMatch(this);
1906
1906
  this.consume();
1907
1907
  }
1908
- this.state = 414;
1908
+ this.state = 416;
1909
1909
  this.data_expr(10);
1910
1910
  }
1911
1911
  break;
@@ -1913,13 +1913,13 @@ class CircuitScriptParser extends antlr.Parser {
1913
1913
  {
1914
1914
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1915
1915
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1916
- this.state = 415;
1916
+ this.state = 417;
1917
1917
  if (!(this.precpred(this.context, 8))) {
1918
1918
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1919
1919
  }
1920
- this.state = 416;
1920
+ this.state = 418;
1921
1921
  this.binary_operator();
1922
- this.state = 417;
1922
+ this.state = 419;
1923
1923
  this.data_expr(9);
1924
1924
  }
1925
1925
  break;
@@ -1927,11 +1927,11 @@ class CircuitScriptParser extends antlr.Parser {
1927
1927
  {
1928
1928
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1929
1929
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1930
- this.state = 419;
1930
+ this.state = 421;
1931
1931
  if (!(this.precpred(this.context, 7))) {
1932
1932
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1933
1933
  }
1934
- this.state = 420;
1934
+ this.state = 422;
1935
1935
  _la = this.tokenStream.LA(1);
1936
1936
  if (!(_la === 42 || _la === 43)) {
1937
1937
  this.errorHandler.recoverInline(this);
@@ -1940,7 +1940,7 @@ class CircuitScriptParser extends antlr.Parser {
1940
1940
  this.errorHandler.reportMatch(this);
1941
1941
  this.consume();
1942
1942
  }
1943
- this.state = 421;
1943
+ this.state = 423;
1944
1944
  this.data_expr(8);
1945
1945
  }
1946
1946
  break;
@@ -1948,22 +1948,22 @@ class CircuitScriptParser extends antlr.Parser {
1948
1948
  {
1949
1949
  localContext = new ArrayIndexExprContext(new Data_exprContext(parentContext, parentState));
1950
1950
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1951
- this.state = 422;
1951
+ this.state = 424;
1952
1952
  if (!(this.precpred(this.context, 1))) {
1953
1953
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
1954
1954
  }
1955
- this.state = 423;
1955
+ this.state = 425;
1956
1956
  this.match(CircuitScriptParser.T__4);
1957
- this.state = 424;
1957
+ this.state = 426;
1958
1958
  this.data_expr(0);
1959
- this.state = 425;
1959
+ this.state = 427;
1960
1960
  this.match(CircuitScriptParser.T__5);
1961
1961
  }
1962
1962
  break;
1963
1963
  }
1964
1964
  }
1965
1965
  }
1966
- this.state = 431;
1966
+ this.state = 433;
1967
1967
  this.errorHandler.sync(this);
1968
1968
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
1969
1969
  }
@@ -1990,7 +1990,7 @@ class CircuitScriptParser extends antlr.Parser {
1990
1990
  try {
1991
1991
  this.enterOuterAlt(localContext, 1);
1992
1992
  {
1993
- this.state = 432;
1993
+ this.state = 434;
1994
1994
  _la = this.tokenStream.LA(1);
1995
1995
  if (!(((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 63) !== 0))) {
1996
1996
  this.errorHandler.recoverInline(this);
@@ -2022,7 +2022,7 @@ class CircuitScriptParser extends antlr.Parser {
2022
2022
  try {
2023
2023
  this.enterOuterAlt(localContext, 1);
2024
2024
  {
2025
- this.state = 434;
2025
+ this.state = 436;
2026
2026
  _la = this.tokenStream.LA(1);
2027
2027
  if (!(_la === 33 || _la === 45)) {
2028
2028
  this.errorHandler.recoverInline(this);
@@ -2055,16 +2055,16 @@ class CircuitScriptParser extends antlr.Parser {
2055
2055
  this.enterOuterAlt(localContext, 1);
2056
2056
  {
2057
2057
  {
2058
- this.state = 437;
2058
+ this.state = 439;
2059
2059
  this.errorHandler.sync(this);
2060
2060
  _la = this.tokenStream.LA(1);
2061
2061
  if (_la === 45) {
2062
2062
  {
2063
- this.state = 436;
2063
+ this.state = 438;
2064
2064
  this.match(CircuitScriptParser.Minus);
2065
2065
  }
2066
2066
  }
2067
- this.state = 439;
2067
+ this.state = 441;
2068
2068
  _la = this.tokenStream.LA(1);
2069
2069
  if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 125) !== 0))) {
2070
2070
  this.errorHandler.recoverInline(this);
@@ -2097,40 +2097,40 @@ class CircuitScriptParser extends antlr.Parser {
2097
2097
  try {
2098
2098
  this.enterOuterAlt(localContext, 1);
2099
2099
  {
2100
- this.state = 441;
2100
+ this.state = 443;
2101
2101
  this.match(CircuitScriptParser.Define);
2102
- this.state = 442;
2102
+ this.state = 444;
2103
2103
  this.match(CircuitScriptParser.ID);
2104
- this.state = 443;
2105
- this.match(CircuitScriptParser.OPEN_PAREN);
2106
2104
  this.state = 445;
2105
+ this.match(CircuitScriptParser.OPEN_PAREN);
2106
+ this.state = 447;
2107
2107
  this.errorHandler.sync(this);
2108
2108
  _la = this.tokenStream.LA(1);
2109
2109
  if (_la === 59) {
2110
2110
  {
2111
- this.state = 444;
2111
+ this.state = 446;
2112
2112
  this.function_args_expr();
2113
2113
  }
2114
2114
  }
2115
- this.state = 447;
2115
+ this.state = 449;
2116
2116
  this.match(CircuitScriptParser.CLOSE_PAREN);
2117
- this.state = 448;
2117
+ this.state = 450;
2118
2118
  this.match(CircuitScriptParser.T__0);
2119
- this.state = 449;
2119
+ this.state = 451;
2120
2120
  this.match(CircuitScriptParser.NEWLINE);
2121
- this.state = 450;
2121
+ this.state = 452;
2122
2122
  this.match(CircuitScriptParser.INDENT);
2123
- this.state = 453;
2123
+ this.state = 455;
2124
2124
  this.errorHandler.sync(this);
2125
2125
  _la = this.tokenStream.LA(1);
2126
2126
  do {
2127
2127
  {
2128
- this.state = 453;
2128
+ this.state = 455;
2129
2129
  this.errorHandler.sync(this);
2130
2130
  switch (this.tokenStream.LA(1)) {
2131
2131
  case CircuitScriptParser.NEWLINE:
2132
2132
  {
2133
- this.state = 451;
2133
+ this.state = 453;
2134
2134
  this.match(CircuitScriptParser.NEWLINE);
2135
2135
  }
2136
2136
  break;
@@ -2160,7 +2160,7 @@ class CircuitScriptParser extends antlr.Parser {
2160
2160
  case CircuitScriptParser.ANNOTATION_START:
2161
2161
  case CircuitScriptParser.ID:
2162
2162
  {
2163
- this.state = 452;
2163
+ this.state = 454;
2164
2164
  this.function_expr();
2165
2165
  }
2166
2166
  break;
@@ -2168,11 +2168,11 @@ class CircuitScriptParser extends antlr.Parser {
2168
2168
  throw new antlr.NoViableAltException(this);
2169
2169
  }
2170
2170
  }
2171
- this.state = 455;
2171
+ this.state = 457;
2172
2172
  this.errorHandler.sync(this);
2173
2173
  _la = this.tokenStream.LA(1);
2174
2174
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472877681) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 8422405) !== 0));
2175
- this.state = 457;
2175
+ this.state = 459;
2176
2176
  this.match(CircuitScriptParser.DEDENT);
2177
2177
  }
2178
2178
  }
@@ -2194,7 +2194,7 @@ class CircuitScriptParser extends antlr.Parser {
2194
2194
  let localContext = new Function_exprContext(this.context, this.state);
2195
2195
  this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_expr);
2196
2196
  try {
2197
- this.state = 461;
2197
+ this.state = 463;
2198
2198
  this.errorHandler.sync(this);
2199
2199
  switch (this.tokenStream.LA(1)) {
2200
2200
  case CircuitScriptParser.T__3:
@@ -2223,14 +2223,14 @@ class CircuitScriptParser extends antlr.Parser {
2223
2223
  case CircuitScriptParser.ID:
2224
2224
  this.enterOuterAlt(localContext, 1);
2225
2225
  {
2226
- this.state = 459;
2226
+ this.state = 461;
2227
2227
  this.expression();
2228
2228
  }
2229
2229
  break;
2230
2230
  case CircuitScriptParser.Return:
2231
2231
  this.enterOuterAlt(localContext, 2);
2232
2232
  {
2233
- this.state = 460;
2233
+ this.state = 462;
2234
2234
  this.function_return_expr();
2235
2235
  }
2236
2236
  break;
@@ -2258,49 +2258,49 @@ class CircuitScriptParser extends antlr.Parser {
2258
2258
  let _la;
2259
2259
  try {
2260
2260
  let alternative;
2261
- this.state = 492;
2261
+ this.state = 494;
2262
2262
  this.errorHandler.sync(this);
2263
2263
  switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
2264
2264
  case 1:
2265
2265
  this.enterOuterAlt(localContext, 1);
2266
2266
  {
2267
- this.state = 463;
2267
+ this.state = 465;
2268
2268
  this.match(CircuitScriptParser.ID);
2269
- this.state = 468;
2269
+ this.state = 470;
2270
2270
  this.errorHandler.sync(this);
2271
2271
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2272
2272
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2273
2273
  if (alternative === 1) {
2274
2274
  {
2275
2275
  {
2276
- this.state = 464;
2276
+ this.state = 466;
2277
2277
  this.match(CircuitScriptParser.T__1);
2278
- this.state = 465;
2278
+ this.state = 467;
2279
2279
  this.match(CircuitScriptParser.ID);
2280
2280
  }
2281
2281
  }
2282
2282
  }
2283
- this.state = 470;
2283
+ this.state = 472;
2284
2284
  this.errorHandler.sync(this);
2285
2285
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2286
2286
  }
2287
- this.state = 477;
2287
+ this.state = 479;
2288
2288
  this.errorHandler.sync(this);
2289
2289
  _la = this.tokenStream.LA(1);
2290
2290
  while (_la === 2) {
2291
2291
  {
2292
2292
  {
2293
- this.state = 471;
2293
+ this.state = 473;
2294
2294
  this.match(CircuitScriptParser.T__1);
2295
- this.state = 472;
2295
+ this.state = 474;
2296
2296
  this.match(CircuitScriptParser.ID);
2297
- this.state = 473;
2297
+ this.state = 475;
2298
2298
  this.match(CircuitScriptParser.T__2);
2299
- this.state = 474;
2299
+ this.state = 476;
2300
2300
  this.value_expr();
2301
2301
  }
2302
2302
  }
2303
- this.state = 479;
2303
+ this.state = 481;
2304
2304
  this.errorHandler.sync(this);
2305
2305
  _la = this.tokenStream.LA(1);
2306
2306
  }
@@ -2309,29 +2309,29 @@ class CircuitScriptParser extends antlr.Parser {
2309
2309
  case 2:
2310
2310
  this.enterOuterAlt(localContext, 2);
2311
2311
  {
2312
- this.state = 480;
2312
+ this.state = 482;
2313
2313
  this.match(CircuitScriptParser.ID);
2314
- this.state = 481;
2314
+ this.state = 483;
2315
2315
  this.match(CircuitScriptParser.T__2);
2316
- this.state = 482;
2316
+ this.state = 484;
2317
2317
  this.value_expr();
2318
- this.state = 489;
2318
+ this.state = 491;
2319
2319
  this.errorHandler.sync(this);
2320
2320
  _la = this.tokenStream.LA(1);
2321
2321
  while (_la === 2) {
2322
2322
  {
2323
2323
  {
2324
- this.state = 483;
2324
+ this.state = 485;
2325
2325
  this.match(CircuitScriptParser.T__1);
2326
- this.state = 484;
2326
+ this.state = 486;
2327
2327
  this.match(CircuitScriptParser.ID);
2328
- this.state = 485;
2328
+ this.state = 487;
2329
2329
  this.match(CircuitScriptParser.T__2);
2330
- this.state = 486;
2330
+ this.state = 488;
2331
2331
  this.value_expr();
2332
2332
  }
2333
2333
  }
2334
- this.state = 491;
2334
+ this.state = 493;
2335
2335
  this.errorHandler.sync(this);
2336
2336
  _la = this.tokenStream.LA(1);
2337
2337
  }
@@ -2360,21 +2360,21 @@ class CircuitScriptParser extends antlr.Parser {
2360
2360
  let alternative;
2361
2361
  this.enterOuterAlt(localContext, 1);
2362
2362
  {
2363
- this.state = 494;
2363
+ this.state = 496;
2364
2364
  this.match(CircuitScriptParser.ID);
2365
- this.state = 498;
2365
+ this.state = 500;
2366
2366
  this.errorHandler.sync(this);
2367
2367
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2368
2368
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2369
2369
  if (alternative === 1) {
2370
2370
  {
2371
2371
  {
2372
- this.state = 495;
2372
+ this.state = 497;
2373
2373
  this.trailer_expr2();
2374
2374
  }
2375
2375
  }
2376
2376
  }
2377
- this.state = 500;
2377
+ this.state = 502;
2378
2378
  this.errorHandler.sync(this);
2379
2379
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2380
2380
  }
@@ -2399,24 +2399,24 @@ class CircuitScriptParser extends antlr.Parser {
2399
2399
  this.enterRule(localContext, 80, CircuitScriptParser.RULE_trailer_expr);
2400
2400
  let _la;
2401
2401
  try {
2402
- this.state = 507;
2402
+ this.state = 509;
2403
2403
  this.errorHandler.sync(this);
2404
2404
  switch (this.tokenStream.LA(1)) {
2405
2405
  case CircuitScriptParser.OPEN_PAREN:
2406
2406
  this.enterOuterAlt(localContext, 1);
2407
2407
  {
2408
- this.state = 501;
2409
- this.match(CircuitScriptParser.OPEN_PAREN);
2410
2408
  this.state = 503;
2409
+ this.match(CircuitScriptParser.OPEN_PAREN);
2410
+ this.state = 505;
2411
2411
  this.errorHandler.sync(this);
2412
2412
  _la = this.tokenStream.LA(1);
2413
2413
  if (_la === 5 || _la === 11 || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 4265621505) !== 0)) {
2414
2414
  {
2415
- this.state = 502;
2415
+ this.state = 504;
2416
2416
  this.parameters();
2417
2417
  }
2418
2418
  }
2419
- this.state = 505;
2419
+ this.state = 507;
2420
2420
  this.match(CircuitScriptParser.CLOSE_PAREN);
2421
2421
  }
2422
2422
  break;
@@ -2424,7 +2424,7 @@ class CircuitScriptParser extends antlr.Parser {
2424
2424
  case CircuitScriptParser.T__6:
2425
2425
  this.enterOuterAlt(localContext, 2);
2426
2426
  {
2427
- this.state = 506;
2427
+ this.state = 508;
2428
2428
  this.trailer_expr2();
2429
2429
  }
2430
2430
  break;
@@ -2450,26 +2450,26 @@ class CircuitScriptParser extends antlr.Parser {
2450
2450
  let localContext = new Trailer_expr2Context(this.context, this.state);
2451
2451
  this.enterRule(localContext, 82, CircuitScriptParser.RULE_trailer_expr2);
2452
2452
  try {
2453
- this.state = 515;
2453
+ this.state = 517;
2454
2454
  this.errorHandler.sync(this);
2455
2455
  switch (this.tokenStream.LA(1)) {
2456
2456
  case CircuitScriptParser.T__6:
2457
2457
  this.enterOuterAlt(localContext, 1);
2458
2458
  {
2459
- this.state = 509;
2459
+ this.state = 511;
2460
2460
  this.match(CircuitScriptParser.T__6);
2461
- this.state = 510;
2461
+ this.state = 512;
2462
2462
  this.match(CircuitScriptParser.ID);
2463
2463
  }
2464
2464
  break;
2465
2465
  case CircuitScriptParser.T__4:
2466
2466
  this.enterOuterAlt(localContext, 2);
2467
2467
  {
2468
- this.state = 511;
2468
+ this.state = 513;
2469
2469
  this.match(CircuitScriptParser.T__4);
2470
- this.state = 512;
2470
+ this.state = 514;
2471
2471
  this.data_expr(0);
2472
- this.state = 513;
2472
+ this.state = 515;
2473
2473
  this.match(CircuitScriptParser.T__5);
2474
2474
  }
2475
2475
  break;
@@ -2499,18 +2499,18 @@ class CircuitScriptParser extends antlr.Parser {
2499
2499
  let alternative;
2500
2500
  this.enterOuterAlt(localContext, 1);
2501
2501
  {
2502
- this.state = 518;
2502
+ this.state = 520;
2503
2503
  this.errorHandler.sync(this);
2504
2504
  _la = this.tokenStream.LA(1);
2505
2505
  if (_la === 44 || _la === 46) {
2506
2506
  {
2507
- this.state = 517;
2507
+ this.state = 519;
2508
2508
  this.net_namespace_expr();
2509
2509
  }
2510
2510
  }
2511
- this.state = 520;
2512
- this.match(CircuitScriptParser.ID);
2513
2511
  this.state = 522;
2512
+ this.match(CircuitScriptParser.ID);
2513
+ this.state = 524;
2514
2514
  this.errorHandler.sync(this);
2515
2515
  alternative = 1;
2516
2516
  do {
@@ -2518,7 +2518,7 @@ class CircuitScriptParser extends antlr.Parser {
2518
2518
  case 1:
2519
2519
  {
2520
2520
  {
2521
- this.state = 521;
2521
+ this.state = 523;
2522
2522
  this.trailer_expr();
2523
2523
  }
2524
2524
  }
@@ -2526,7 +2526,7 @@ class CircuitScriptParser extends antlr.Parser {
2526
2526
  default:
2527
2527
  throw new antlr.NoViableAltException(this);
2528
2528
  }
2529
- this.state = 524;
2529
+ this.state = 526;
2530
2530
  this.errorHandler.sync(this);
2531
2531
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 51, this.context);
2532
2532
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -2553,23 +2553,23 @@ class CircuitScriptParser extends antlr.Parser {
2553
2553
  try {
2554
2554
  this.enterOuterAlt(localContext, 1);
2555
2555
  {
2556
- this.state = 527;
2556
+ this.state = 529;
2557
2557
  this.errorHandler.sync(this);
2558
2558
  _la = this.tokenStream.LA(1);
2559
2559
  if (_la === 44) {
2560
2560
  {
2561
- this.state = 526;
2561
+ this.state = 528;
2562
2562
  this.match(CircuitScriptParser.Addition);
2563
2563
  }
2564
2564
  }
2565
- this.state = 529;
2566
- this.match(CircuitScriptParser.Divide);
2567
2565
  this.state = 531;
2566
+ this.match(CircuitScriptParser.Divide);
2567
+ this.state = 533;
2568
2568
  this.errorHandler.sync(this);
2569
2569
  switch (this.interpreter.adaptivePredict(this.tokenStream, 53, this.context)) {
2570
2570
  case 1:
2571
2571
  {
2572
- this.state = 530;
2572
+ this.state = 532;
2573
2573
  this.data_expr(0);
2574
2574
  }
2575
2575
  break;
@@ -2596,9 +2596,9 @@ class CircuitScriptParser extends antlr.Parser {
2596
2596
  try {
2597
2597
  this.enterOuterAlt(localContext, 1);
2598
2598
  {
2599
- this.state = 533;
2599
+ this.state = 535;
2600
2600
  this.match(CircuitScriptParser.Return);
2601
- this.state = 534;
2601
+ this.state = 536;
2602
2602
  this.data_expr(0);
2603
2603
  }
2604
2604
  }
@@ -2622,11 +2622,11 @@ class CircuitScriptParser extends antlr.Parser {
2622
2622
  try {
2623
2623
  this.enterOuterAlt(localContext, 1);
2624
2624
  {
2625
- this.state = 536;
2625
+ this.state = 538;
2626
2626
  this.property_key_expr();
2627
- this.state = 537;
2627
+ this.state = 539;
2628
2628
  this.match(CircuitScriptParser.T__0);
2629
- this.state = 538;
2629
+ this.state = 540;
2630
2630
  this.expressions_block();
2631
2631
  }
2632
2632
  }
@@ -2651,27 +2651,27 @@ class CircuitScriptParser extends antlr.Parser {
2651
2651
  try {
2652
2652
  this.enterOuterAlt(localContext, 1);
2653
2653
  {
2654
- this.state = 540;
2654
+ this.state = 542;
2655
2655
  this.match(CircuitScriptParser.Create);
2656
- this.state = 541;
2656
+ this.state = 543;
2657
2657
  this.match(CircuitScriptParser.Component);
2658
- this.state = 542;
2658
+ this.state = 544;
2659
2659
  this.match(CircuitScriptParser.T__0);
2660
- this.state = 543;
2660
+ this.state = 545;
2661
2661
  this.match(CircuitScriptParser.NEWLINE);
2662
- this.state = 544;
2662
+ this.state = 546;
2663
2663
  this.match(CircuitScriptParser.INDENT);
2664
- this.state = 547;
2664
+ this.state = 549;
2665
2665
  this.errorHandler.sync(this);
2666
2666
  _la = this.tokenStream.LA(1);
2667
2667
  do {
2668
2668
  {
2669
- this.state = 547;
2669
+ this.state = 549;
2670
2670
  this.errorHandler.sync(this);
2671
2671
  switch (this.tokenStream.LA(1)) {
2672
2672
  case CircuitScriptParser.NEWLINE:
2673
2673
  {
2674
- this.state = 545;
2674
+ this.state = 547;
2675
2675
  this.match(CircuitScriptParser.NEWLINE);
2676
2676
  }
2677
2677
  break;
@@ -2679,7 +2679,7 @@ class CircuitScriptParser extends antlr.Parser {
2679
2679
  case CircuitScriptParser.INTEGER_VALUE:
2680
2680
  case CircuitScriptParser.STRING_VALUE:
2681
2681
  {
2682
- this.state = 546;
2682
+ this.state = 548;
2683
2683
  this.property_expr();
2684
2684
  }
2685
2685
  break;
@@ -2687,11 +2687,11 @@ class CircuitScriptParser extends antlr.Parser {
2687
2687
  throw new antlr.NoViableAltException(this);
2688
2688
  }
2689
2689
  }
2690
- this.state = 549;
2690
+ this.state = 551;
2691
2691
  this.errorHandler.sync(this);
2692
2692
  _la = this.tokenStream.LA(1);
2693
2693
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 275) !== 0));
2694
- this.state = 551;
2694
+ this.state = 553;
2695
2695
  this.match(CircuitScriptParser.DEDENT);
2696
2696
  }
2697
2697
  }
@@ -2716,21 +2716,21 @@ class CircuitScriptParser extends antlr.Parser {
2716
2716
  try {
2717
2717
  this.enterOuterAlt(localContext, 1);
2718
2718
  {
2719
- this.state = 553;
2719
+ this.state = 555;
2720
2720
  this.match(CircuitScriptParser.NEWLINE);
2721
- this.state = 554;
2721
+ this.state = 556;
2722
2722
  this.match(CircuitScriptParser.INDENT);
2723
- this.state = 557;
2723
+ this.state = 559;
2724
2724
  this.errorHandler.sync(this);
2725
2725
  _la = this.tokenStream.LA(1);
2726
2726
  do {
2727
2727
  {
2728
- this.state = 557;
2728
+ this.state = 559;
2729
2729
  this.errorHandler.sync(this);
2730
2730
  switch (this.tokenStream.LA(1)) {
2731
2731
  case CircuitScriptParser.NEWLINE:
2732
2732
  {
2733
- this.state = 555;
2733
+ this.state = 557;
2734
2734
  this.match(CircuitScriptParser.NEWLINE);
2735
2735
  }
2736
2736
  break;
@@ -2738,7 +2738,7 @@ class CircuitScriptParser extends antlr.Parser {
2738
2738
  case CircuitScriptParser.For:
2739
2739
  case CircuitScriptParser.ID:
2740
2740
  {
2741
- this.state = 556;
2741
+ this.state = 558;
2742
2742
  this.graphic_expr();
2743
2743
  }
2744
2744
  break;
@@ -2746,11 +2746,11 @@ class CircuitScriptParser extends antlr.Parser {
2746
2746
  throw new antlr.NoViableAltException(this);
2747
2747
  }
2748
2748
  }
2749
- this.state = 559;
2749
+ this.state = 561;
2750
2750
  this.errorHandler.sync(this);
2751
2751
  _la = this.tokenStream.LA(1);
2752
2752
  } while (_la === 16 || _la === 27 || _la === 59 || _la === 67);
2753
- this.state = 561;
2753
+ this.state = 563;
2754
2754
  this.match(CircuitScriptParser.DEDENT);
2755
2755
  }
2756
2756
  }
@@ -2775,26 +2775,26 @@ class CircuitScriptParser extends antlr.Parser {
2775
2775
  try {
2776
2776
  this.enterOuterAlt(localContext, 1);
2777
2777
  {
2778
- this.state = 563;
2778
+ this.state = 565;
2779
2779
  this.match(CircuitScriptParser.Create);
2780
- this.state = 564;
2780
+ this.state = 566;
2781
2781
  this.match(CircuitScriptParser.Graphic);
2782
- this.state = 568;
2782
+ this.state = 570;
2783
2783
  this.errorHandler.sync(this);
2784
2784
  _la = this.tokenStream.LA(1);
2785
2785
  if (_la === 55) {
2786
2786
  {
2787
- this.state = 565;
2787
+ this.state = 567;
2788
2788
  this.match(CircuitScriptParser.OPEN_PAREN);
2789
- this.state = 566;
2789
+ this.state = 568;
2790
2790
  this.match(CircuitScriptParser.ID);
2791
- this.state = 567;
2791
+ this.state = 569;
2792
2792
  this.match(CircuitScriptParser.CLOSE_PAREN);
2793
2793
  }
2794
2794
  }
2795
- this.state = 570;
2795
+ this.state = 572;
2796
2796
  this.match(CircuitScriptParser.T__0);
2797
- this.state = 571;
2797
+ this.state = 573;
2798
2798
  this.graphic_expressions_block();
2799
2799
  }
2800
2800
  }
@@ -2819,49 +2819,49 @@ class CircuitScriptParser extends antlr.Parser {
2819
2819
  try {
2820
2820
  this.enterOuterAlt(localContext, 1);
2821
2821
  {
2822
- this.state = 573;
2822
+ this.state = 575;
2823
2823
  this.match(CircuitScriptParser.Create);
2824
- this.state = 574;
2824
+ this.state = 576;
2825
2825
  this.match(CircuitScriptParser.Module);
2826
- this.state = 575;
2826
+ this.state = 577;
2827
2827
  this.match(CircuitScriptParser.T__0);
2828
- this.state = 576;
2828
+ this.state = 578;
2829
2829
  this.match(CircuitScriptParser.NEWLINE);
2830
- this.state = 577;
2830
+ this.state = 579;
2831
2831
  this.match(CircuitScriptParser.INDENT);
2832
- this.state = 581;
2832
+ this.state = 583;
2833
2833
  this.errorHandler.sync(this);
2834
2834
  _la = this.tokenStream.LA(1);
2835
2835
  do {
2836
2836
  {
2837
- this.state = 581;
2837
+ this.state = 583;
2838
2838
  this.errorHandler.sync(this);
2839
2839
  switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2840
2840
  case 1:
2841
2841
  {
2842
- this.state = 578;
2842
+ this.state = 580;
2843
2843
  this.match(CircuitScriptParser.NEWLINE);
2844
2844
  }
2845
2845
  break;
2846
2846
  case 2:
2847
2847
  {
2848
- this.state = 579;
2848
+ this.state = 581;
2849
2849
  this.property_expr();
2850
2850
  }
2851
2851
  break;
2852
2852
  case 3:
2853
2853
  {
2854
- this.state = 580;
2854
+ this.state = 582;
2855
2855
  this.property_block_expr();
2856
2856
  }
2857
2857
  break;
2858
2858
  }
2859
2859
  }
2860
- this.state = 583;
2860
+ this.state = 585;
2861
2861
  this.errorHandler.sync(this);
2862
2862
  _la = this.tokenStream.LA(1);
2863
2863
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 275) !== 0));
2864
- this.state = 585;
2864
+ this.state = 587;
2865
2865
  this.match(CircuitScriptParser.DEDENT);
2866
2866
  }
2867
2867
  }
@@ -2887,21 +2887,21 @@ class CircuitScriptParser extends antlr.Parser {
2887
2887
  this.enterOuterAlt(localContext, 1);
2888
2888
  {
2889
2889
  {
2890
- this.state = 587;
2890
+ this.state = 589;
2891
2891
  this.match(CircuitScriptParser.NEWLINE);
2892
- this.state = 588;
2892
+ this.state = 590;
2893
2893
  this.match(CircuitScriptParser.INDENT);
2894
- this.state = 591;
2894
+ this.state = 593;
2895
2895
  this.errorHandler.sync(this);
2896
2896
  _la = this.tokenStream.LA(1);
2897
2897
  do {
2898
2898
  {
2899
- this.state = 591;
2899
+ this.state = 593;
2900
2900
  this.errorHandler.sync(this);
2901
2901
  switch (this.tokenStream.LA(1)) {
2902
2902
  case CircuitScriptParser.NEWLINE:
2903
2903
  {
2904
- this.state = 589;
2904
+ this.state = 591;
2905
2905
  this.match(CircuitScriptParser.NEWLINE);
2906
2906
  }
2907
2907
  break;
@@ -2909,7 +2909,7 @@ class CircuitScriptParser extends antlr.Parser {
2909
2909
  case CircuitScriptParser.INTEGER_VALUE:
2910
2910
  case CircuitScriptParser.STRING_VALUE:
2911
2911
  {
2912
- this.state = 590;
2912
+ this.state = 592;
2913
2913
  this.property_expr();
2914
2914
  }
2915
2915
  break;
@@ -2917,11 +2917,11 @@ class CircuitScriptParser extends antlr.Parser {
2917
2917
  throw new antlr.NoViableAltException(this);
2918
2918
  }
2919
2919
  }
2920
- this.state = 593;
2920
+ this.state = 595;
2921
2921
  this.errorHandler.sync(this);
2922
2922
  _la = this.tokenStream.LA(1);
2923
2923
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 275) !== 0));
2924
- this.state = 595;
2924
+ this.state = 597;
2925
2925
  this.match(CircuitScriptParser.DEDENT);
2926
2926
  }
2927
2927
  }
@@ -2945,7 +2945,7 @@ class CircuitScriptParser extends antlr.Parser {
2945
2945
  this.enterRule(localContext, 102, CircuitScriptParser.RULE_graphic_expr);
2946
2946
  let _la;
2947
2947
  try {
2948
- this.state = 623;
2948
+ this.state = 625;
2949
2949
  this.errorHandler.sync(this);
2950
2950
  switch (this.tokenStream.LA(1)) {
2951
2951
  case CircuitScriptParser.Pin:
@@ -2953,7 +2953,7 @@ class CircuitScriptParser extends antlr.Parser {
2953
2953
  localContext = new GraphicCommandExprContext(localContext);
2954
2954
  this.enterOuterAlt(localContext, 1);
2955
2955
  {
2956
- this.state = 597;
2956
+ this.state = 599;
2957
2957
  localContext._command = this.tokenStream.LT(1);
2958
2958
  _la = this.tokenStream.LA(1);
2959
2959
  if (!(_la === 16 || _la === 59)) {
@@ -2963,37 +2963,37 @@ class CircuitScriptParser extends antlr.Parser {
2963
2963
  this.errorHandler.reportMatch(this);
2964
2964
  this.consume();
2965
2965
  }
2966
- this.state = 599;
2966
+ this.state = 601;
2967
2967
  this.errorHandler.sync(this);
2968
2968
  _la = this.tokenStream.LA(1);
2969
2969
  if (_la === 1) {
2970
2970
  {
2971
- this.state = 598;
2971
+ this.state = 600;
2972
2972
  this.match(CircuitScriptParser.T__0);
2973
2973
  }
2974
2974
  }
2975
- this.state = 607;
2975
+ this.state = 609;
2976
2976
  this.errorHandler.sync(this);
2977
2977
  switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
2978
2978
  case 1:
2979
2979
  {
2980
- this.state = 601;
2980
+ this.state = 603;
2981
2981
  this.parameters();
2982
2982
  }
2983
2983
  break;
2984
2984
  case 2:
2985
2985
  {
2986
- this.state = 602;
2986
+ this.state = 604;
2987
2987
  this.match(CircuitScriptParser.OPEN_PAREN);
2988
- this.state = 603;
2988
+ this.state = 605;
2989
2989
  this.parameters();
2990
- this.state = 604;
2990
+ this.state = 606;
2991
2991
  this.match(CircuitScriptParser.CLOSE_PAREN);
2992
2992
  }
2993
2993
  break;
2994
2994
  case 3:
2995
2995
  {
2996
- this.state = 606;
2996
+ this.state = 608;
2997
2997
  this.nested_properties_inner();
2998
2998
  }
2999
2999
  break;
@@ -3004,33 +3004,33 @@ class CircuitScriptParser extends antlr.Parser {
3004
3004
  localContext = new GraphicForExprContext(localContext);
3005
3005
  this.enterOuterAlt(localContext, 2);
3006
3006
  {
3007
- this.state = 609;
3007
+ this.state = 611;
3008
3008
  this.match(CircuitScriptParser.For);
3009
- this.state = 610;
3009
+ this.state = 612;
3010
3010
  this.match(CircuitScriptParser.ID);
3011
- this.state = 615;
3011
+ this.state = 617;
3012
3012
  this.errorHandler.sync(this);
3013
3013
  _la = this.tokenStream.LA(1);
3014
3014
  while (_la === 2) {
3015
3015
  {
3016
3016
  {
3017
- this.state = 611;
3017
+ this.state = 613;
3018
3018
  this.match(CircuitScriptParser.T__1);
3019
- this.state = 612;
3019
+ this.state = 614;
3020
3020
  this.match(CircuitScriptParser.ID);
3021
3021
  }
3022
3022
  }
3023
- this.state = 617;
3023
+ this.state = 619;
3024
3024
  this.errorHandler.sync(this);
3025
3025
  _la = this.tokenStream.LA(1);
3026
3026
  }
3027
- this.state = 618;
3027
+ this.state = 620;
3028
3028
  this.match(CircuitScriptParser.In);
3029
- this.state = 619;
3029
+ this.state = 621;
3030
3030
  this.data_expr(0);
3031
- this.state = 620;
3031
+ this.state = 622;
3032
3032
  this.match(CircuitScriptParser.T__0);
3033
- this.state = 621;
3033
+ this.state = 623;
3034
3034
  this.graphic_expressions_block();
3035
3035
  }
3036
3036
  break;
@@ -3055,14 +3055,29 @@ class CircuitScriptParser extends antlr.Parser {
3055
3055
  property_expr() {
3056
3056
  let localContext = new Property_exprContext(this.context, this.state);
3057
3057
  this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_expr);
3058
+ let _la;
3058
3059
  try {
3059
3060
  this.enterOuterAlt(localContext, 1);
3060
3061
  {
3061
- this.state = 625;
3062
+ this.state = 627;
3062
3063
  this.property_key_expr();
3063
- this.state = 626;
3064
+ this.state = 631;
3065
+ this.errorHandler.sync(this);
3066
+ _la = this.tokenStream.LA(1);
3067
+ while (_la === 63) {
3068
+ {
3069
+ {
3070
+ this.state = 628;
3071
+ localContext._extra = this.match(CircuitScriptParser.STRING_VALUE);
3072
+ }
3073
+ }
3074
+ this.state = 633;
3075
+ this.errorHandler.sync(this);
3076
+ _la = this.tokenStream.LA(1);
3077
+ }
3078
+ this.state = 634;
3064
3079
  this.match(CircuitScriptParser.T__0);
3065
- this.state = 627;
3080
+ this.state = 635;
3066
3081
  this.property_value_expr();
3067
3082
  }
3068
3083
  }
@@ -3087,7 +3102,7 @@ class CircuitScriptParser extends antlr.Parser {
3087
3102
  try {
3088
3103
  this.enterOuterAlt(localContext, 1);
3089
3104
  {
3090
- this.state = 629;
3105
+ this.state = 637;
3091
3106
  _la = this.tokenStream.LA(1);
3092
3107
  if (!(((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 19) !== 0))) {
3093
3108
  this.errorHandler.recoverInline(this);
@@ -3117,14 +3132,14 @@ class CircuitScriptParser extends antlr.Parser {
3117
3132
  this.enterRule(localContext, 108, CircuitScriptParser.RULE_property_value_expr);
3118
3133
  let _la;
3119
3134
  try {
3120
- this.state = 640;
3135
+ this.state = 648;
3121
3136
  this.errorHandler.sync(this);
3122
3137
  switch (this.tokenStream.LA(1)) {
3123
3138
  case CircuitScriptParser.NEWLINE:
3124
3139
  localContext = new Nested_propertiesContext(localContext);
3125
3140
  this.enterOuterAlt(localContext, 1);
3126
3141
  {
3127
- this.state = 631;
3142
+ this.state = 639;
3128
3143
  this.nested_properties_inner();
3129
3144
  }
3130
3145
  break;
@@ -3145,21 +3160,21 @@ class CircuitScriptParser extends antlr.Parser {
3145
3160
  localContext = new Single_line_propertyContext(localContext);
3146
3161
  this.enterOuterAlt(localContext, 2);
3147
3162
  {
3148
- this.state = 632;
3163
+ this.state = 640;
3149
3164
  this.data_expr(0);
3150
- this.state = 637;
3165
+ this.state = 645;
3151
3166
  this.errorHandler.sync(this);
3152
3167
  _la = this.tokenStream.LA(1);
3153
3168
  while (_la === 2) {
3154
3169
  {
3155
3170
  {
3156
- this.state = 633;
3171
+ this.state = 641;
3157
3172
  this.match(CircuitScriptParser.T__1);
3158
- this.state = 634;
3173
+ this.state = 642;
3159
3174
  this.data_expr(0);
3160
3175
  }
3161
3176
  }
3162
- this.state = 639;
3177
+ this.state = 647;
3163
3178
  this.errorHandler.sync(this);
3164
3179
  _la = this.tokenStream.LA(1);
3165
3180
  }
@@ -3187,27 +3202,27 @@ class CircuitScriptParser extends antlr.Parser {
3187
3202
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3188
3203
  this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_atom_expr);
3189
3204
  try {
3190
- this.state = 648;
3205
+ this.state = 656;
3191
3206
  this.errorHandler.sync(this);
3192
- switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
3207
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 71, this.context)) {
3193
3208
  case 1:
3194
3209
  localContext = new Wire_expr_direction_valueContext(localContext);
3195
3210
  this.enterOuterAlt(localContext, 1);
3196
3211
  {
3197
- this.state = 642;
3212
+ this.state = 650;
3198
3213
  this.match(CircuitScriptParser.ID);
3199
- this.state = 645;
3214
+ this.state = 653;
3200
3215
  this.errorHandler.sync(this);
3201
- switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3216
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
3202
3217
  case 1:
3203
3218
  {
3204
- this.state = 643;
3219
+ this.state = 651;
3205
3220
  this.match(CircuitScriptParser.INTEGER_VALUE);
3206
3221
  }
3207
3222
  break;
3208
3223
  case 2:
3209
3224
  {
3210
- this.state = 644;
3225
+ this.state = 652;
3211
3226
  this.data_expr(0);
3212
3227
  }
3213
3228
  break;
@@ -3218,7 +3233,7 @@ class CircuitScriptParser extends antlr.Parser {
3218
3233
  localContext = new Wire_expr_direction_onlyContext(localContext);
3219
3234
  this.enterOuterAlt(localContext, 2);
3220
3235
  {
3221
- this.state = 647;
3236
+ this.state = 655;
3222
3237
  this.match(CircuitScriptParser.ID);
3223
3238
  }
3224
3239
  break;
@@ -3245,23 +3260,23 @@ class CircuitScriptParser extends antlr.Parser {
3245
3260
  let alternative;
3246
3261
  this.enterOuterAlt(localContext, 1);
3247
3262
  {
3248
- this.state = 650;
3263
+ this.state = 658;
3249
3264
  this.match(CircuitScriptParser.Wire);
3250
- this.state = 654;
3265
+ this.state = 662;
3251
3266
  this.errorHandler.sync(this);
3252
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3267
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 72, this.context);
3253
3268
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3254
3269
  if (alternative === 1) {
3255
3270
  {
3256
3271
  {
3257
- this.state = 651;
3272
+ this.state = 659;
3258
3273
  this.wire_atom_expr();
3259
3274
  }
3260
3275
  }
3261
3276
  }
3262
- this.state = 656;
3277
+ this.state = 664;
3263
3278
  this.errorHandler.sync(this);
3264
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3279
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 72, this.context);
3265
3280
  }
3266
3281
  }
3267
3282
  }
@@ -3286,39 +3301,39 @@ class CircuitScriptParser extends antlr.Parser {
3286
3301
  try {
3287
3302
  this.enterOuterAlt(localContext, 1);
3288
3303
  {
3289
- this.state = 657;
3304
+ this.state = 665;
3290
3305
  this.match(CircuitScriptParser.T__4);
3291
- this.state = 668;
3306
+ this.state = 676;
3292
3307
  this.errorHandler.sync(this);
3293
3308
  _la = this.tokenStream.LA(1);
3294
3309
  while (_la === 5 || _la === 11 || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 4265621505) !== 0)) {
3295
3310
  {
3296
3311
  {
3297
- this.state = 658;
3312
+ this.state = 666;
3298
3313
  this.data_expr(0);
3299
- this.state = 663;
3314
+ this.state = 671;
3300
3315
  this.errorHandler.sync(this);
3301
3316
  _la = this.tokenStream.LA(1);
3302
3317
  while (_la === 2) {
3303
3318
  {
3304
3319
  {
3305
- this.state = 659;
3320
+ this.state = 667;
3306
3321
  this.match(CircuitScriptParser.T__1);
3307
- this.state = 660;
3322
+ this.state = 668;
3308
3323
  this.data_expr(0);
3309
3324
  }
3310
3325
  }
3311
- this.state = 665;
3326
+ this.state = 673;
3312
3327
  this.errorHandler.sync(this);
3313
3328
  _la = this.tokenStream.LA(1);
3314
3329
  }
3315
3330
  }
3316
3331
  }
3317
- this.state = 670;
3332
+ this.state = 678;
3318
3333
  this.errorHandler.sync(this);
3319
3334
  _la = this.tokenStream.LA(1);
3320
3335
  }
3321
- this.state = 671;
3336
+ this.state = 679;
3322
3337
  this.match(CircuitScriptParser.T__5);
3323
3338
  }
3324
3339
  }
@@ -3342,20 +3357,20 @@ class CircuitScriptParser extends antlr.Parser {
3342
3357
  try {
3343
3358
  this.enterOuterAlt(localContext, 1);
3344
3359
  {
3345
- this.state = 673;
3360
+ this.state = 681;
3346
3361
  this.match(CircuitScriptParser.Point);
3347
- this.state = 676;
3362
+ this.state = 684;
3348
3363
  this.errorHandler.sync(this);
3349
- switch (this.interpreter.adaptivePredict(this.tokenStream, 74, this.context)) {
3364
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context)) {
3350
3365
  case 1:
3351
3366
  {
3352
- this.state = 674;
3367
+ this.state = 682;
3353
3368
  this.match(CircuitScriptParser.ID);
3354
3369
  }
3355
3370
  break;
3356
3371
  case 2:
3357
3372
  {
3358
- this.state = 675;
3373
+ this.state = 683;
3359
3374
  this.data_expr(0);
3360
3375
  }
3361
3376
  break;
@@ -3381,63 +3396,93 @@ class CircuitScriptParser extends antlr.Parser {
3381
3396
  this.enterRule(localContext, 118, CircuitScriptParser.RULE_import_expr);
3382
3397
  let _la;
3383
3398
  try {
3384
- this.state = 695;
3399
+ this.state = 712;
3385
3400
  this.errorHandler.sync(this);
3386
- switch (this.interpreter.adaptivePredict(this.tokenStream, 76, this.context)) {
3401
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 80, this.context)) {
3387
3402
  case 1:
3388
3403
  localContext = new Import_simpleContext(localContext);
3389
3404
  this.enterOuterAlt(localContext, 1);
3390
3405
  {
3391
- this.state = 678;
3406
+ this.state = 686;
3392
3407
  this.match(CircuitScriptParser.Import);
3393
- this.state = 679;
3408
+ this.state = 687;
3394
3409
  localContext._moduleName = this.match(CircuitScriptParser.ID);
3410
+ this.state = 689;
3411
+ this.errorHandler.sync(this);
3412
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 76, this.context)) {
3413
+ case 1:
3414
+ {
3415
+ this.state = 688;
3416
+ this.import_annotation_expr();
3417
+ }
3418
+ break;
3419
+ }
3395
3420
  }
3396
3421
  break;
3397
3422
  case 2:
3398
3423
  localContext = new Import_all_simpleContext(localContext);
3399
3424
  this.enterOuterAlt(localContext, 2);
3400
3425
  {
3401
- this.state = 680;
3426
+ this.state = 691;
3402
3427
  this.match(CircuitScriptParser.From);
3403
- this.state = 681;
3428
+ this.state = 692;
3404
3429
  localContext._moduleName = this.match(CircuitScriptParser.ID);
3405
- this.state = 682;
3430
+ this.state = 693;
3406
3431
  this.match(CircuitScriptParser.Import);
3407
- this.state = 683;
3432
+ this.state = 694;
3408
3433
  this.match(CircuitScriptParser.Multiply);
3434
+ this.state = 696;
3435
+ this.errorHandler.sync(this);
3436
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 77, this.context)) {
3437
+ case 1:
3438
+ {
3439
+ this.state = 695;
3440
+ this.import_annotation_expr();
3441
+ }
3442
+ break;
3443
+ }
3409
3444
  }
3410
3445
  break;
3411
3446
  case 3:
3412
3447
  localContext = new Import_specificContext(localContext);
3413
3448
  this.enterOuterAlt(localContext, 3);
3414
3449
  {
3415
- this.state = 684;
3450
+ this.state = 698;
3416
3451
  this.match(CircuitScriptParser.From);
3417
- this.state = 685;
3452
+ this.state = 699;
3418
3453
  localContext._moduleName = this.match(CircuitScriptParser.ID);
3419
- this.state = 686;
3454
+ this.state = 700;
3420
3455
  this.match(CircuitScriptParser.Import);
3421
- this.state = 687;
3456
+ this.state = 701;
3422
3457
  localContext._ID = this.match(CircuitScriptParser.ID);
3423
3458
  localContext._funcNames.push(localContext._ID);
3424
- this.state = 692;
3459
+ this.state = 706;
3425
3460
  this.errorHandler.sync(this);
3426
3461
  _la = this.tokenStream.LA(1);
3427
3462
  while (_la === 2) {
3428
3463
  {
3429
3464
  {
3430
- this.state = 688;
3465
+ this.state = 702;
3431
3466
  this.match(CircuitScriptParser.T__1);
3432
- this.state = 689;
3467
+ this.state = 703;
3433
3468
  localContext._ID = this.match(CircuitScriptParser.ID);
3434
3469
  localContext._funcNames.push(localContext._ID);
3435
3470
  }
3436
3471
  }
3437
- this.state = 694;
3472
+ this.state = 708;
3438
3473
  this.errorHandler.sync(this);
3439
3474
  _la = this.tokenStream.LA(1);
3440
3475
  }
3476
+ this.state = 710;
3477
+ this.errorHandler.sync(this);
3478
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 79, this.context)) {
3479
+ case 1:
3480
+ {
3481
+ this.state = 709;
3482
+ this.import_annotation_expr();
3483
+ }
3484
+ break;
3485
+ }
3441
3486
  }
3442
3487
  break;
3443
3488
  }
@@ -3456,14 +3501,63 @@ class CircuitScriptParser extends antlr.Parser {
3456
3501
  }
3457
3502
  return localContext;
3458
3503
  }
3504
+ import_annotation_expr() {
3505
+ let localContext = new Import_annotation_exprContext(this.context, this.state);
3506
+ this.enterRule(localContext, 120, CircuitScriptParser.RULE_import_annotation_expr);
3507
+ let _la;
3508
+ try {
3509
+ let alternative;
3510
+ this.enterOuterAlt(localContext, 1);
3511
+ {
3512
+ this.state = 714;
3513
+ this.match(CircuitScriptParser.ANNOTATION_START);
3514
+ this.state = 718;
3515
+ this.errorHandler.sync(this);
3516
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 81, this.context);
3517
+ while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3518
+ if (alternative === 1) {
3519
+ {
3520
+ {
3521
+ this.state = 715;
3522
+ _la = this.tokenStream.LA(1);
3523
+ if (!(_la === 45 || _la === 59)) {
3524
+ this.errorHandler.recoverInline(this);
3525
+ }
3526
+ else {
3527
+ this.errorHandler.reportMatch(this);
3528
+ this.consume();
3529
+ }
3530
+ }
3531
+ }
3532
+ }
3533
+ this.state = 720;
3534
+ this.errorHandler.sync(this);
3535
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 81, this.context);
3536
+ }
3537
+ }
3538
+ }
3539
+ catch (re) {
3540
+ if (re instanceof antlr.RecognitionException) {
3541
+ this.errorHandler.reportError(this, re);
3542
+ this.errorHandler.recover(this, re);
3543
+ }
3544
+ else {
3545
+ throw re;
3546
+ }
3547
+ }
3548
+ finally {
3549
+ this.exitRule();
3550
+ }
3551
+ return localContext;
3552
+ }
3459
3553
  frame_expr() {
3460
3554
  let localContext = new Frame_exprContext(this.context, this.state);
3461
- this.enterRule(localContext, 120, CircuitScriptParser.RULE_frame_expr);
3555
+ this.enterRule(localContext, 122, CircuitScriptParser.RULE_frame_expr);
3462
3556
  let _la;
3463
3557
  try {
3464
3558
  this.enterOuterAlt(localContext, 1);
3465
3559
  {
3466
- this.state = 697;
3560
+ this.state = 721;
3467
3561
  _la = this.tokenStream.LA(1);
3468
3562
  if (!(_la === 34 || _la === 35)) {
3469
3563
  this.errorHandler.recoverInline(this);
@@ -3472,9 +3566,9 @@ class CircuitScriptParser extends antlr.Parser {
3472
3566
  this.errorHandler.reportMatch(this);
3473
3567
  this.consume();
3474
3568
  }
3475
- this.state = 698;
3569
+ this.state = 722;
3476
3570
  this.match(CircuitScriptParser.T__0);
3477
- this.state = 699;
3571
+ this.state = 723;
3478
3572
  this.expressions_block();
3479
3573
  }
3480
3574
  }
@@ -3494,42 +3588,42 @@ class CircuitScriptParser extends antlr.Parser {
3494
3588
  }
3495
3589
  if_expr() {
3496
3590
  let localContext = new If_exprContext(this.context, this.state);
3497
- this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_expr);
3591
+ this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_expr);
3498
3592
  let _la;
3499
3593
  try {
3500
3594
  let alternative;
3501
3595
  this.enterOuterAlt(localContext, 1);
3502
3596
  {
3503
- this.state = 701;
3597
+ this.state = 725;
3504
3598
  this.match(CircuitScriptParser.If);
3505
- this.state = 702;
3599
+ this.state = 726;
3506
3600
  this.data_expr(0);
3507
- this.state = 703;
3601
+ this.state = 727;
3508
3602
  this.match(CircuitScriptParser.T__0);
3509
- this.state = 704;
3603
+ this.state = 728;
3510
3604
  this.expressions_block();
3511
- this.state = 708;
3605
+ this.state = 732;
3512
3606
  this.errorHandler.sync(this);
3513
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 77, this.context);
3607
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3514
3608
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3515
3609
  if (alternative === 1) {
3516
3610
  {
3517
3611
  {
3518
- this.state = 705;
3612
+ this.state = 729;
3519
3613
  this.if_inner_expr();
3520
3614
  }
3521
3615
  }
3522
3616
  }
3523
- this.state = 710;
3617
+ this.state = 734;
3524
3618
  this.errorHandler.sync(this);
3525
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 77, this.context);
3619
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3526
3620
  }
3527
- this.state = 712;
3621
+ this.state = 736;
3528
3622
  this.errorHandler.sync(this);
3529
3623
  _la = this.tokenStream.LA(1);
3530
3624
  if (_la === 32) {
3531
3625
  {
3532
- this.state = 711;
3626
+ this.state = 735;
3533
3627
  this.else_expr();
3534
3628
  }
3535
3629
  }
@@ -3551,19 +3645,19 @@ class CircuitScriptParser extends antlr.Parser {
3551
3645
  }
3552
3646
  if_inner_expr() {
3553
3647
  let localContext = new If_inner_exprContext(this.context, this.state);
3554
- this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_inner_expr);
3648
+ this.enterRule(localContext, 126, CircuitScriptParser.RULE_if_inner_expr);
3555
3649
  try {
3556
3650
  this.enterOuterAlt(localContext, 1);
3557
3651
  {
3558
- this.state = 714;
3652
+ this.state = 738;
3559
3653
  this.match(CircuitScriptParser.Else);
3560
- this.state = 715;
3654
+ this.state = 739;
3561
3655
  this.match(CircuitScriptParser.If);
3562
- this.state = 716;
3656
+ this.state = 740;
3563
3657
  this.data_expr(0);
3564
- this.state = 717;
3658
+ this.state = 741;
3565
3659
  this.match(CircuitScriptParser.T__0);
3566
- this.state = 718;
3660
+ this.state = 742;
3567
3661
  this.expressions_block();
3568
3662
  }
3569
3663
  }
@@ -3583,15 +3677,15 @@ class CircuitScriptParser extends antlr.Parser {
3583
3677
  }
3584
3678
  else_expr() {
3585
3679
  let localContext = new Else_exprContext(this.context, this.state);
3586
- this.enterRule(localContext, 126, CircuitScriptParser.RULE_else_expr);
3680
+ this.enterRule(localContext, 128, CircuitScriptParser.RULE_else_expr);
3587
3681
  try {
3588
3682
  this.enterOuterAlt(localContext, 1);
3589
3683
  {
3590
- this.state = 720;
3684
+ this.state = 744;
3591
3685
  this.match(CircuitScriptParser.Else);
3592
- this.state = 721;
3686
+ this.state = 745;
3593
3687
  this.match(CircuitScriptParser.T__0);
3594
- this.state = 722;
3688
+ this.state = 746;
3595
3689
  this.expressions_block();
3596
3690
  }
3597
3691
  }
@@ -3611,17 +3705,17 @@ class CircuitScriptParser extends antlr.Parser {
3611
3705
  }
3612
3706
  while_expr() {
3613
3707
  let localContext = new While_exprContext(this.context, this.state);
3614
- this.enterRule(localContext, 128, CircuitScriptParser.RULE_while_expr);
3708
+ this.enterRule(localContext, 130, CircuitScriptParser.RULE_while_expr);
3615
3709
  try {
3616
3710
  this.enterOuterAlt(localContext, 1);
3617
3711
  {
3618
- this.state = 724;
3712
+ this.state = 748;
3619
3713
  this.match(CircuitScriptParser.While);
3620
- this.state = 725;
3714
+ this.state = 749;
3621
3715
  this.data_expr(0);
3622
- this.state = 726;
3716
+ this.state = 750;
3623
3717
  this.match(CircuitScriptParser.T__0);
3624
- this.state = 727;
3718
+ this.state = 751;
3625
3719
  this.expressions_block();
3626
3720
  }
3627
3721
  }
@@ -3641,38 +3735,38 @@ class CircuitScriptParser extends antlr.Parser {
3641
3735
  }
3642
3736
  for_expr() {
3643
3737
  let localContext = new For_exprContext(this.context, this.state);
3644
- this.enterRule(localContext, 130, CircuitScriptParser.RULE_for_expr);
3738
+ this.enterRule(localContext, 132, CircuitScriptParser.RULE_for_expr);
3645
3739
  let _la;
3646
3740
  try {
3647
3741
  this.enterOuterAlt(localContext, 1);
3648
3742
  {
3649
- this.state = 729;
3743
+ this.state = 753;
3650
3744
  this.match(CircuitScriptParser.For);
3651
- this.state = 730;
3745
+ this.state = 754;
3652
3746
  this.match(CircuitScriptParser.ID);
3653
- this.state = 735;
3747
+ this.state = 759;
3654
3748
  this.errorHandler.sync(this);
3655
3749
  _la = this.tokenStream.LA(1);
3656
3750
  while (_la === 2) {
3657
3751
  {
3658
3752
  {
3659
- this.state = 731;
3753
+ this.state = 755;
3660
3754
  this.match(CircuitScriptParser.T__1);
3661
- this.state = 732;
3755
+ this.state = 756;
3662
3756
  this.match(CircuitScriptParser.ID);
3663
3757
  }
3664
3758
  }
3665
- this.state = 737;
3759
+ this.state = 761;
3666
3760
  this.errorHandler.sync(this);
3667
3761
  _la = this.tokenStream.LA(1);
3668
3762
  }
3669
- this.state = 738;
3763
+ this.state = 762;
3670
3764
  this.match(CircuitScriptParser.In);
3671
- this.state = 739;
3765
+ this.state = 763;
3672
3766
  this.data_expr(0);
3673
- this.state = 740;
3767
+ this.state = 764;
3674
3768
  this.match(CircuitScriptParser.T__0);
3675
- this.state = 741;
3769
+ this.state = 765;
3676
3770
  this.expressions_block();
3677
3771
  }
3678
3772
  }
@@ -3692,36 +3786,36 @@ class CircuitScriptParser extends antlr.Parser {
3692
3786
  }
3693
3787
  part_set_expr() {
3694
3788
  let localContext = new Part_set_exprContext(this.context, this.state);
3695
- this.enterRule(localContext, 132, CircuitScriptParser.RULE_part_set_expr);
3789
+ this.enterRule(localContext, 134, CircuitScriptParser.RULE_part_set_expr);
3696
3790
  let _la;
3697
3791
  try {
3698
3792
  this.enterOuterAlt(localContext, 1);
3699
3793
  {
3700
- this.state = 743;
3794
+ this.state = 767;
3701
3795
  this.match(CircuitScriptParser.T__7);
3702
- this.state = 744;
3796
+ this.state = 768;
3703
3797
  this.match(CircuitScriptParser.T__0);
3704
- this.state = 745;
3798
+ this.state = 769;
3705
3799
  this.data_expr(0);
3706
- this.state = 750;
3800
+ this.state = 774;
3707
3801
  this.errorHandler.sync(this);
3708
3802
  _la = this.tokenStream.LA(1);
3709
3803
  while (_la === 2) {
3710
3804
  {
3711
3805
  {
3712
- this.state = 746;
3806
+ this.state = 770;
3713
3807
  this.match(CircuitScriptParser.T__1);
3714
- this.state = 747;
3808
+ this.state = 771;
3715
3809
  this.data_expr(0);
3716
3810
  }
3717
3811
  }
3718
- this.state = 752;
3812
+ this.state = 776;
3719
3813
  this.errorHandler.sync(this);
3720
3814
  _la = this.tokenStream.LA(1);
3721
3815
  }
3722
- this.state = 753;
3816
+ this.state = 777;
3723
3817
  this.match(CircuitScriptParser.T__0);
3724
- this.state = 754;
3818
+ this.state = 778;
3725
3819
  this.part_match_block();
3726
3820
  }
3727
3821
  }
@@ -3741,12 +3835,12 @@ class CircuitScriptParser extends antlr.Parser {
3741
3835
  }
3742
3836
  part_set_key() {
3743
3837
  let localContext = new Part_set_keyContext(this.context, this.state);
3744
- this.enterRule(localContext, 134, CircuitScriptParser.RULE_part_set_key);
3838
+ this.enterRule(localContext, 136, CircuitScriptParser.RULE_part_set_key);
3745
3839
  let _la;
3746
3840
  try {
3747
3841
  this.enterOuterAlt(localContext, 1);
3748
3842
  {
3749
- this.state = 756;
3843
+ this.state = 780;
3750
3844
  _la = this.tokenStream.LA(1);
3751
3845
  if (!(((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 59) !== 0))) {
3752
3846
  this.errorHandler.recoverInline(this);
@@ -3773,26 +3867,26 @@ class CircuitScriptParser extends antlr.Parser {
3773
3867
  }
3774
3868
  part_match_block() {
3775
3869
  let localContext = new Part_match_blockContext(this.context, this.state);
3776
- this.enterRule(localContext, 136, CircuitScriptParser.RULE_part_match_block);
3870
+ this.enterRule(localContext, 138, CircuitScriptParser.RULE_part_match_block);
3777
3871
  let _la;
3778
3872
  try {
3779
3873
  this.enterOuterAlt(localContext, 1);
3780
3874
  {
3781
- this.state = 758;
3875
+ this.state = 782;
3782
3876
  this.match(CircuitScriptParser.NEWLINE);
3783
- this.state = 759;
3877
+ this.state = 783;
3784
3878
  this.match(CircuitScriptParser.INDENT);
3785
- this.state = 762;
3879
+ this.state = 786;
3786
3880
  this.errorHandler.sync(this);
3787
3881
  _la = this.tokenStream.LA(1);
3788
3882
  do {
3789
3883
  {
3790
- this.state = 762;
3884
+ this.state = 786;
3791
3885
  this.errorHandler.sync(this);
3792
3886
  switch (this.tokenStream.LA(1)) {
3793
3887
  case CircuitScriptParser.NEWLINE:
3794
3888
  {
3795
- this.state = 760;
3889
+ this.state = 784;
3796
3890
  this.match(CircuitScriptParser.NEWLINE);
3797
3891
  }
3798
3892
  break;
@@ -3802,7 +3896,7 @@ class CircuitScriptParser extends antlr.Parser {
3802
3896
  case CircuitScriptParser.STRING_VALUE:
3803
3897
  case CircuitScriptParser.PERCENTAGE_VALUE:
3804
3898
  {
3805
- this.state = 761;
3899
+ this.state = 785;
3806
3900
  this.part_sub_expr();
3807
3901
  }
3808
3902
  break;
@@ -3810,11 +3904,11 @@ class CircuitScriptParser extends antlr.Parser {
3810
3904
  throw new antlr.NoViableAltException(this);
3811
3905
  }
3812
3906
  }
3813
- this.state = 764;
3907
+ this.state = 788;
3814
3908
  this.errorHandler.sync(this);
3815
3909
  _la = this.tokenStream.LA(1);
3816
3910
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 315) !== 0));
3817
- this.state = 766;
3911
+ this.state = 790;
3818
3912
  this.match(CircuitScriptParser.DEDENT);
3819
3913
  }
3820
3914
  }
@@ -3834,29 +3928,29 @@ class CircuitScriptParser extends antlr.Parser {
3834
3928
  }
3835
3929
  part_sub_expr() {
3836
3930
  let localContext = new Part_sub_exprContext(this.context, this.state);
3837
- this.enterRule(localContext, 138, CircuitScriptParser.RULE_part_sub_expr);
3931
+ this.enterRule(localContext, 140, CircuitScriptParser.RULE_part_sub_expr);
3838
3932
  try {
3839
- this.state = 771;
3933
+ this.state = 795;
3840
3934
  this.errorHandler.sync(this);
3841
- switch (this.interpreter.adaptivePredict(this.tokenStream, 83, this.context)) {
3935
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 88, this.context)) {
3842
3936
  case 1:
3843
3937
  this.enterOuterAlt(localContext, 1);
3844
3938
  {
3845
- this.state = 768;
3939
+ this.state = 792;
3846
3940
  this.part_condition_expr();
3847
3941
  }
3848
3942
  break;
3849
3943
  case 2:
3850
3944
  this.enterOuterAlt(localContext, 2);
3851
3945
  {
3852
- this.state = 769;
3946
+ this.state = 793;
3853
3947
  this.part_value_expr();
3854
3948
  }
3855
3949
  break;
3856
3950
  case 3:
3857
3951
  this.enterOuterAlt(localContext, 3);
3858
3952
  {
3859
- this.state = 770;
3953
+ this.state = 794;
3860
3954
  this.part_condition_key_only_expr();
3861
3955
  }
3862
3956
  break;
@@ -3878,68 +3972,68 @@ class CircuitScriptParser extends antlr.Parser {
3878
3972
  }
3879
3973
  part_condition_expr() {
3880
3974
  let localContext = new Part_condition_exprContext(this.context, this.state);
3881
- this.enterRule(localContext, 140, CircuitScriptParser.RULE_part_condition_expr);
3975
+ this.enterRule(localContext, 142, CircuitScriptParser.RULE_part_condition_expr);
3882
3976
  let _la;
3883
3977
  try {
3884
3978
  let alternative;
3885
3979
  this.enterOuterAlt(localContext, 1);
3886
3980
  {
3887
- this.state = 773;
3981
+ this.state = 797;
3888
3982
  localContext._part_set_key = this.part_set_key();
3889
3983
  localContext._key_id.push(localContext._part_set_key);
3890
- this.state = 774;
3984
+ this.state = 798;
3891
3985
  this.match(CircuitScriptParser.T__0);
3892
- this.state = 775;
3986
+ this.state = 799;
3893
3987
  localContext._data_expr = this.data_expr(0);
3894
3988
  localContext._values.push(localContext._data_expr);
3895
- this.state = 783;
3989
+ this.state = 807;
3896
3990
  this.errorHandler.sync(this);
3897
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 84, this.context);
3991
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 89, this.context);
3898
3992
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3899
3993
  if (alternative === 1) {
3900
3994
  {
3901
3995
  {
3902
- this.state = 776;
3996
+ this.state = 800;
3903
3997
  this.match(CircuitScriptParser.T__1);
3904
- this.state = 777;
3998
+ this.state = 801;
3905
3999
  localContext._part_set_key = this.part_set_key();
3906
4000
  localContext._key_id.push(localContext._part_set_key);
3907
- this.state = 778;
4001
+ this.state = 802;
3908
4002
  this.match(CircuitScriptParser.T__0);
3909
- this.state = 779;
4003
+ this.state = 803;
3910
4004
  localContext._data_expr = this.data_expr(0);
3911
4005
  localContext._values.push(localContext._data_expr);
3912
4006
  }
3913
4007
  }
3914
4008
  }
3915
- this.state = 785;
4009
+ this.state = 809;
3916
4010
  this.errorHandler.sync(this);
3917
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 84, this.context);
4011
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 89, this.context);
3918
4012
  }
3919
- this.state = 790;
4013
+ this.state = 814;
3920
4014
  this.errorHandler.sync(this);
3921
4015
  _la = this.tokenStream.LA(1);
3922
4016
  while (_la === 2) {
3923
4017
  {
3924
4018
  {
3925
- this.state = 786;
4019
+ this.state = 810;
3926
4020
  this.match(CircuitScriptParser.T__1);
3927
- this.state = 787;
4021
+ this.state = 811;
3928
4022
  localContext._id_only = this.part_set_key();
3929
4023
  }
3930
4024
  }
3931
- this.state = 792;
4025
+ this.state = 816;
3932
4026
  this.errorHandler.sync(this);
3933
4027
  _la = this.tokenStream.LA(1);
3934
4028
  }
3935
- this.state = 793;
4029
+ this.state = 817;
3936
4030
  this.match(CircuitScriptParser.T__0);
3937
- this.state = 803;
4031
+ this.state = 827;
3938
4032
  this.errorHandler.sync(this);
3939
4033
  switch (this.tokenStream.LA(1)) {
3940
4034
  case CircuitScriptParser.NEWLINE:
3941
4035
  {
3942
- this.state = 794;
4036
+ this.state = 818;
3943
4037
  this.part_match_block();
3944
4038
  }
3945
4039
  break;
@@ -3959,23 +4053,23 @@ class CircuitScriptParser extends antlr.Parser {
3959
4053
  case CircuitScriptParser.PERCENTAGE_VALUE:
3960
4054
  {
3961
4055
  {
3962
- this.state = 795;
4056
+ this.state = 819;
3963
4057
  localContext._data_expr = this.data_expr(0);
3964
4058
  localContext._last_data.push(localContext._data_expr);
3965
- this.state = 800;
4059
+ this.state = 824;
3966
4060
  this.errorHandler.sync(this);
3967
4061
  _la = this.tokenStream.LA(1);
3968
4062
  while (_la === 2) {
3969
4063
  {
3970
4064
  {
3971
- this.state = 796;
4065
+ this.state = 820;
3972
4066
  this.match(CircuitScriptParser.T__1);
3973
- this.state = 797;
4067
+ this.state = 821;
3974
4068
  localContext._data_expr = this.data_expr(0);
3975
4069
  localContext._last_data.push(localContext._data_expr);
3976
4070
  }
3977
4071
  }
3978
- this.state = 802;
4072
+ this.state = 826;
3979
4073
  this.errorHandler.sync(this);
3980
4074
  _la = this.tokenStream.LA(1);
3981
4075
  }
@@ -4003,15 +4097,15 @@ class CircuitScriptParser extends antlr.Parser {
4003
4097
  }
4004
4098
  part_condition_key_only_expr() {
4005
4099
  let localContext = new Part_condition_key_only_exprContext(this.context, this.state);
4006
- this.enterRule(localContext, 142, CircuitScriptParser.RULE_part_condition_key_only_expr);
4100
+ this.enterRule(localContext, 144, CircuitScriptParser.RULE_part_condition_key_only_expr);
4007
4101
  try {
4008
4102
  this.enterOuterAlt(localContext, 1);
4009
4103
  {
4010
- this.state = 805;
4104
+ this.state = 829;
4011
4105
  this.part_set_key();
4012
- this.state = 806;
4106
+ this.state = 830;
4013
4107
  this.match(CircuitScriptParser.T__0);
4014
- this.state = 807;
4108
+ this.state = 831;
4015
4109
  this.part_match_block();
4016
4110
  }
4017
4111
  }
@@ -4031,30 +4125,30 @@ class CircuitScriptParser extends antlr.Parser {
4031
4125
  }
4032
4126
  part_value_expr() {
4033
4127
  let localContext = new Part_value_exprContext(this.context, this.state);
4034
- this.enterRule(localContext, 144, CircuitScriptParser.RULE_part_value_expr);
4128
+ this.enterRule(localContext, 146, CircuitScriptParser.RULE_part_value_expr);
4035
4129
  let _la;
4036
4130
  try {
4037
4131
  this.enterOuterAlt(localContext, 1);
4038
4132
  {
4039
- this.state = 809;
4133
+ this.state = 833;
4040
4134
  this.part_set_key();
4041
- this.state = 810;
4135
+ this.state = 834;
4042
4136
  this.match(CircuitScriptParser.T__0);
4043
- this.state = 811;
4137
+ this.state = 835;
4044
4138
  this.data_expr(0);
4045
- this.state = 816;
4139
+ this.state = 840;
4046
4140
  this.errorHandler.sync(this);
4047
4141
  _la = this.tokenStream.LA(1);
4048
4142
  while (_la === 2) {
4049
4143
  {
4050
4144
  {
4051
- this.state = 812;
4145
+ this.state = 836;
4052
4146
  this.match(CircuitScriptParser.T__1);
4053
- this.state = 813;
4147
+ this.state = 837;
4054
4148
  this.data_expr(0);
4055
4149
  }
4056
4150
  }
4057
- this.state = 818;
4151
+ this.state = 842;
4058
4152
  this.errorHandler.sync(this);
4059
4153
  _la = this.tokenStream.LA(1);
4060
4154
  }
@@ -4076,13 +4170,13 @@ class CircuitScriptParser extends antlr.Parser {
4076
4170
  }
4077
4171
  annotation_comment_expr() {
4078
4172
  let localContext = new Annotation_comment_exprContext(this.context, this.state);
4079
- this.enterRule(localContext, 146, CircuitScriptParser.RULE_annotation_comment_expr);
4173
+ this.enterRule(localContext, 148, CircuitScriptParser.RULE_annotation_comment_expr);
4080
4174
  try {
4081
4175
  this.enterOuterAlt(localContext, 1);
4082
4176
  {
4083
- this.state = 819;
4177
+ this.state = 843;
4084
4178
  this.match(CircuitScriptParser.ANNOTATION_START);
4085
- this.state = 820;
4179
+ this.state = 844;
4086
4180
  this.match(CircuitScriptParser.ID);
4087
4181
  }
4088
4182
  }
@@ -4263,20 +4357,21 @@ CircuitScriptParser.RULE_wire_expr = 56;
4263
4357
  CircuitScriptParser.RULE_array_expr = 57;
4264
4358
  CircuitScriptParser.RULE_point_expr = 58;
4265
4359
  CircuitScriptParser.RULE_import_expr = 59;
4266
- CircuitScriptParser.RULE_frame_expr = 60;
4267
- CircuitScriptParser.RULE_if_expr = 61;
4268
- CircuitScriptParser.RULE_if_inner_expr = 62;
4269
- CircuitScriptParser.RULE_else_expr = 63;
4270
- CircuitScriptParser.RULE_while_expr = 64;
4271
- CircuitScriptParser.RULE_for_expr = 65;
4272
- CircuitScriptParser.RULE_part_set_expr = 66;
4273
- CircuitScriptParser.RULE_part_set_key = 67;
4274
- CircuitScriptParser.RULE_part_match_block = 68;
4275
- CircuitScriptParser.RULE_part_sub_expr = 69;
4276
- CircuitScriptParser.RULE_part_condition_expr = 70;
4277
- CircuitScriptParser.RULE_part_condition_key_only_expr = 71;
4278
- CircuitScriptParser.RULE_part_value_expr = 72;
4279
- CircuitScriptParser.RULE_annotation_comment_expr = 73;
4360
+ CircuitScriptParser.RULE_import_annotation_expr = 60;
4361
+ CircuitScriptParser.RULE_frame_expr = 61;
4362
+ CircuitScriptParser.RULE_if_expr = 62;
4363
+ CircuitScriptParser.RULE_if_inner_expr = 63;
4364
+ CircuitScriptParser.RULE_else_expr = 64;
4365
+ CircuitScriptParser.RULE_while_expr = 65;
4366
+ CircuitScriptParser.RULE_for_expr = 66;
4367
+ CircuitScriptParser.RULE_part_set_expr = 67;
4368
+ CircuitScriptParser.RULE_part_set_key = 68;
4369
+ CircuitScriptParser.RULE_part_match_block = 69;
4370
+ CircuitScriptParser.RULE_part_sub_expr = 70;
4371
+ CircuitScriptParser.RULE_part_condition_expr = 71;
4372
+ CircuitScriptParser.RULE_part_condition_key_only_expr = 72;
4373
+ CircuitScriptParser.RULE_part_value_expr = 73;
4374
+ CircuitScriptParser.RULE_annotation_comment_expr = 74;
4280
4375
  CircuitScriptParser.literalNames = [
4281
4376
  null, "':'", "','", "'='", "'..'", "'['", "']'", "'.'", "'set'",
4282
4377
  "'break'", "'branch'", "'create'", "'component'", "'graphic'", "'module'",
@@ -4319,13 +4414,14 @@ CircuitScriptParser.ruleNames = [
4319
4414
  "graphic_expressions_block", "create_graphic_expr", "create_module_expr",
4320
4415
  "nested_properties_inner", "graphic_expr", "property_expr", "property_key_expr",
4321
4416
  "property_value_expr", "wire_atom_expr", "wire_expr", "array_expr",
4322
- "point_expr", "import_expr", "frame_expr", "if_expr", "if_inner_expr",
4323
- "else_expr", "while_expr", "for_expr", "part_set_expr", "part_set_key",
4324
- "part_match_block", "part_sub_expr", "part_condition_expr", "part_condition_key_only_expr",
4325
- "part_value_expr", "annotation_comment_expr",
4417
+ "point_expr", "import_expr", "import_annotation_expr", "frame_expr",
4418
+ "if_expr", "if_inner_expr", "else_expr", "while_expr", "for_expr",
4419
+ "part_set_expr", "part_set_key", "part_match_block", "part_sub_expr",
4420
+ "part_condition_expr", "part_condition_key_only_expr", "part_value_expr",
4421
+ "annotation_comment_expr",
4326
4422
  ];
4327
4423
  CircuitScriptParser._serializedATN = [
4328
- 4, 1, 70, 823, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
4424
+ 4, 1, 70, 847, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
4329
4425
  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, 2, 13, 7, 13,
4330
4426
  2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20,
4331
4427
  7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26,
@@ -4336,298 +4432,308 @@ CircuitScriptParser._serializedATN = [
4336
4432
  2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59,
4337
4433
  7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65,
4338
4434
  2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72,
4339
- 7, 72, 2, 73, 7, 73, 1, 0, 1, 0, 5, 0, 151, 8, 0, 10, 0, 12, 0, 154, 9, 0, 1, 0, 1, 0, 4, 0,
4340
- 158, 8, 0, 11, 0, 12, 0, 159, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4341
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 178, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 185, 8,
4342
- 2, 1, 3, 1, 3, 3, 3, 189, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 197, 8, 4, 1, 5, 1,
4343
- 5, 1, 5, 1, 5, 4, 5, 203, 8, 5, 11, 5, 12, 5, 204, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7,
4344
- 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 219, 8, 7, 11, 7, 12, 7, 220, 1, 7, 1, 7, 1, 8, 1, 8, 1,
4345
- 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 236, 8, 10, 1, 11, 1, 11, 3,
4346
- 11, 240, 8, 11, 1, 11, 5, 11, 243, 8, 11, 10, 11, 12, 11, 246, 9, 11, 1, 11, 3, 11, 249,
4347
- 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 257, 8, 13, 1, 14, 1, 14, 1, 15,
4348
- 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 268, 8, 16, 10, 16, 12, 16, 271, 9, 16,
4349
- 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 279, 8, 17, 10, 17, 12, 17, 282, 9, 17,
4350
- 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 289, 8, 17, 11, 17, 12, 17, 290, 1, 17, 1, 17,
4351
- 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 300, 8, 18, 10, 18, 12, 18, 303, 9, 18, 1, 19,
4352
- 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 312, 8, 20, 11, 20, 12, 20, 313, 1, 20,
4353
- 1, 20, 1, 21, 1, 21, 3, 21, 320, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 325, 8, 22, 10, 22,
4354
- 12, 22, 328, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 334, 8, 23, 1, 24, 1, 24, 3, 24,
4355
- 338, 8, 24, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 344, 8, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1,
4356
- 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 360, 8, 29, 10,
4357
- 29, 12, 29, 363, 9, 29, 1, 29, 1, 29, 5, 29, 367, 8, 29, 10, 29, 12, 29, 370, 9, 29, 1,
4358
- 29, 1, 29, 1, 29, 5, 29, 375, 8, 29, 10, 29, 12, 29, 378, 9, 29, 3, 29, 380, 8, 29, 1,
4359
- 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4360
- 32, 1, 32, 1, 32, 3, 32, 398, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4361
- 32, 3, 32, 408, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4362
- 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 428, 8, 32, 10, 32, 12,
4363
- 32, 431, 9, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 3, 35, 438, 8, 35, 1, 35, 1, 35, 1, 36,
4364
- 1, 36, 1, 36, 1, 36, 3, 36, 446, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 4, 36,
4365
- 454, 8, 36, 11, 36, 12, 36, 455, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 462, 8, 37, 1, 38,
4366
- 1, 38, 1, 38, 5, 38, 467, 8, 38, 10, 38, 12, 38, 470, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4367
- 5, 38, 476, 8, 38, 10, 38, 12, 38, 479, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4368
- 1, 38, 5, 38, 488, 8, 38, 10, 38, 12, 38, 491, 9, 38, 3, 38, 493, 8, 38, 1, 39, 1, 39,
4369
- 5, 39, 497, 8, 39, 10, 39, 12, 39, 500, 9, 39, 1, 40, 1, 40, 3, 40, 504, 8, 40, 1, 40,
4370
- 1, 40, 3, 40, 508, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 516, 8, 41, 1,
4371
- 42, 3, 42, 519, 8, 42, 1, 42, 1, 42, 4, 42, 523, 8, 42, 11, 42, 12, 42, 524, 1, 43, 3,
4372
- 43, 528, 8, 43, 1, 43, 1, 43, 3, 43, 532, 8, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45,
4373
- 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 548, 8, 46, 11, 46, 12, 46,
4374
- 549, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 558, 8, 47, 11, 47, 12, 47, 559,
4375
- 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 569, 8, 48, 1, 48, 1, 48, 1, 48,
4376
- 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 582, 8, 49, 11, 49, 12, 49,
4377
- 583, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 592, 8, 50, 11, 50, 12, 50, 593,
4378
- 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 600, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51,
4379
- 3, 51, 608, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 614, 8, 51, 10, 51, 12, 51, 617,
4380
- 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 624, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52,
4381
- 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 636, 8, 54, 10, 54, 12, 54, 639, 9, 54,
4382
- 3, 54, 641, 8, 54, 1, 55, 1, 55, 1, 55, 3, 55, 646, 8, 55, 1, 55, 3, 55, 649, 8, 55, 1,
4383
- 56, 1, 56, 5, 56, 653, 8, 56, 10, 56, 12, 56, 656, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5,
4384
- 57, 662, 8, 57, 10, 57, 12, 57, 665, 9, 57, 5, 57, 667, 8, 57, 10, 57, 12, 57, 670, 9,
4385
- 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 3, 58, 677, 8, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1,
4386
- 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 691, 8, 59, 10, 59, 12, 59,
4387
- 694, 9, 59, 3, 59, 696, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1,
4388
- 61, 5, 61, 707, 8, 61, 10, 61, 12, 61, 710, 9, 61, 1, 61, 3, 61, 713, 8, 61, 1, 62, 1,
4389
- 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1,
4390
- 64, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 734, 8, 65, 10, 65, 12, 65, 737, 9, 65, 1, 65, 1,
4391
- 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 5, 66, 749, 8, 66, 10, 66, 12,
4392
- 66, 752, 9, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 4, 68, 763,
4393
- 8, 68, 11, 68, 12, 68, 764, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 3, 69, 772, 8, 69, 1, 70,
4394
- 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 5, 70, 782, 8, 70, 10, 70, 12, 70, 785,
4395
- 9, 70, 1, 70, 1, 70, 5, 70, 789, 8, 70, 10, 70, 12, 70, 792, 9, 70, 1, 70, 1, 70, 1, 70,
4396
- 1, 70, 1, 70, 5, 70, 799, 8, 70, 10, 70, 12, 70, 802, 9, 70, 3, 70, 804, 8, 70, 1, 71,
4397
- 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 5, 72, 815, 8, 72, 10, 72, 12, 72,
4398
- 818, 9, 72, 1, 73, 1, 73, 1, 73, 1, 73, 0, 1, 64, 74, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
4399
- 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62,
4400
- 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104,
4401
- 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136,
4402
- 138, 140, 142, 144, 146, 0, 15, 2, 0, 10, 10, 20, 22, 1, 0, 59, 60, 2, 0, 60, 60, 63,
4403
- 63, 2, 0, 57, 57, 60, 60, 1, 0, 49, 53, 1, 0, 46, 48, 1, 0, 44, 45, 1, 0, 42, 43, 1, 0, 36,
4404
- 41, 2, 0, 33, 33, 45, 45, 2, 0, 58, 58, 60, 64, 2, 0, 16, 16, 59, 59, 2, 0, 59, 60, 63,
4405
- 63, 1, 0, 34, 35, 2, 0, 59, 60, 62, 64, 870, 0, 152, 1, 0, 0, 0, 2, 177, 1, 0, 0, 0, 4, 184,
4406
- 1, 0, 0, 0, 6, 188, 1, 0, 0, 0, 8, 196, 1, 0, 0, 0, 10, 198, 1, 0, 0, 0, 12, 208, 1, 0, 0,
4407
- 0, 14, 212, 1, 0, 0, 0, 16, 224, 1, 0, 0, 0, 18, 228, 1, 0, 0, 0, 20, 231, 1, 0, 0, 0, 22,
4408
- 239, 1, 0, 0, 0, 24, 250, 1, 0, 0, 0, 26, 256, 1, 0, 0, 0, 28, 258, 1, 0, 0, 0, 30, 260,
4409
- 1, 0, 0, 0, 32, 263, 1, 0, 0, 0, 34, 272, 1, 0, 0, 0, 36, 294, 1, 0, 0, 0, 38, 304, 1, 0,
4410
- 0, 0, 40, 306, 1, 0, 0, 0, 42, 319, 1, 0, 0, 0, 44, 321, 1, 0, 0, 0, 46, 329, 1, 0, 0, 0,
4411
- 48, 337, 1, 0, 0, 0, 50, 339, 1, 0, 0, 0, 52, 343, 1, 0, 0, 0, 54, 348, 1, 0, 0, 0, 56, 352,
4412
- 1, 0, 0, 0, 58, 379, 1, 0, 0, 0, 60, 381, 1, 0, 0, 0, 62, 385, 1, 0, 0, 0, 64, 407, 1, 0,
4413
- 0, 0, 66, 432, 1, 0, 0, 0, 68, 434, 1, 0, 0, 0, 70, 437, 1, 0, 0, 0, 72, 441, 1, 0, 0, 0,
4414
- 74, 461, 1, 0, 0, 0, 76, 492, 1, 0, 0, 0, 78, 494, 1, 0, 0, 0, 80, 507, 1, 0, 0, 0, 82, 515,
4415
- 1, 0, 0, 0, 84, 518, 1, 0, 0, 0, 86, 527, 1, 0, 0, 0, 88, 533, 1, 0, 0, 0, 90, 536, 1, 0,
4416
- 0, 0, 92, 540, 1, 0, 0, 0, 94, 553, 1, 0, 0, 0, 96, 563, 1, 0, 0, 0, 98, 573, 1, 0, 0, 0,
4417
- 100, 587, 1, 0, 0, 0, 102, 623, 1, 0, 0, 0, 104, 625, 1, 0, 0, 0, 106, 629, 1, 0, 0, 0,
4418
- 108, 640, 1, 0, 0, 0, 110, 648, 1, 0, 0, 0, 112, 650, 1, 0, 0, 0, 114, 657, 1, 0, 0, 0,
4419
- 116, 673, 1, 0, 0, 0, 118, 695, 1, 0, 0, 0, 120, 697, 1, 0, 0, 0, 122, 701, 1, 0, 0, 0,
4420
- 124, 714, 1, 0, 0, 0, 126, 720, 1, 0, 0, 0, 128, 724, 1, 0, 0, 0, 130, 729, 1, 0, 0, 0,
4421
- 132, 743, 1, 0, 0, 0, 134, 756, 1, 0, 0, 0, 136, 758, 1, 0, 0, 0, 138, 771, 1, 0, 0, 0,
4422
- 140, 773, 1, 0, 0, 0, 142, 805, 1, 0, 0, 0, 144, 809, 1, 0, 0, 0, 146, 819, 1, 0, 0, 0,
4423
- 148, 151, 3, 118, 59, 0, 149, 151, 5, 67, 0, 0, 150, 148, 1, 0, 0, 0, 150, 149, 1, 0,
4424
- 0, 0, 151, 154, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153, 157, 1, 0,
4425
- 0, 0, 154, 152, 1, 0, 0, 0, 155, 158, 3, 2, 1, 0, 156, 158, 5, 67, 0, 0, 157, 155, 1, 0,
4426
- 0, 0, 157, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0,
4427
- 0, 0, 160, 161, 1, 0, 0, 0, 161, 162, 5, 0, 0, 1, 162, 1, 1, 0, 0, 0, 163, 178, 3, 6, 3,
4428
- 0, 164, 178, 3, 52, 26, 0, 165, 178, 3, 54, 27, 0, 166, 178, 3, 60, 30, 0, 167, 178,
4429
- 3, 14, 7, 0, 168, 178, 3, 62, 31, 0, 169, 178, 3, 72, 36, 0, 170, 178, 3, 84, 42, 0, 171,
4430
- 178, 3, 118, 59, 0, 172, 178, 3, 78, 39, 0, 173, 178, 3, 120, 60, 0, 174, 178, 3, 4,
4431
- 2, 0, 175, 178, 3, 146, 73, 0, 176, 178, 3, 132, 66, 0, 177, 163, 1, 0, 0, 0, 177, 164,
4432
- 1, 0, 0, 0, 177, 165, 1, 0, 0, 0, 177, 166, 1, 0, 0, 0, 177, 167, 1, 0, 0, 0, 177, 168,
4433
- 1, 0, 0, 0, 177, 169, 1, 0, 0, 0, 177, 170, 1, 0, 0, 0, 177, 171, 1, 0, 0, 0, 177, 172,
4434
- 1, 0, 0, 0, 177, 173, 1, 0, 0, 0, 177, 174, 1, 0, 0, 0, 177, 175, 1, 0, 0, 0, 177, 176,
4435
- 1, 0, 0, 0, 178, 3, 1, 0, 0, 0, 179, 185, 3, 122, 61, 0, 180, 185, 3, 128, 64, 0, 181,
4436
- 185, 3, 130, 65, 0, 182, 185, 5, 9, 0, 0, 183, 185, 5, 30, 0, 0, 184, 179, 1, 0, 0, 0,
4437
- 184, 180, 1, 0, 0, 0, 184, 181, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184, 183, 1, 0, 0, 0,
4438
- 185, 5, 1, 0, 0, 0, 186, 189, 3, 8, 4, 0, 187, 189, 3, 12, 6, 0, 188, 186, 1, 0, 0, 0, 188,
4439
- 187, 1, 0, 0, 0, 189, 7, 1, 0, 0, 0, 190, 197, 3, 24, 12, 0, 191, 197, 3, 32, 16, 0, 192,
4440
- 197, 3, 30, 15, 0, 193, 197, 3, 40, 20, 0, 194, 197, 3, 112, 56, 0, 195, 197, 3, 116,
4441
- 58, 0, 196, 190, 1, 0, 0, 0, 196, 191, 1, 0, 0, 0, 196, 192, 1, 0, 0, 0, 196, 193, 1, 0,
4442
- 0, 0, 196, 194, 1, 0, 0, 0, 196, 195, 1, 0, 0, 0, 197, 9, 1, 0, 0, 0, 198, 199, 5, 67, 0,
4443
- 0, 199, 202, 5, 69, 0, 0, 200, 203, 5, 67, 0, 0, 201, 203, 3, 2, 1, 0, 202, 200, 1, 0,
4444
- 0, 0, 202, 201, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 202, 1, 0, 0, 0, 204, 205, 1, 0,
4445
- 0, 0, 205, 206, 1, 0, 0, 0, 206, 207, 5, 70, 0, 0, 207, 11, 1, 0, 0, 0, 208, 209, 7, 0,
4446
- 0, 0, 209, 210, 5, 1, 0, 0, 210, 211, 3, 10, 5, 0, 211, 13, 1, 0, 0, 0, 212, 213, 3, 78,
4447
- 39, 0, 213, 214, 5, 1, 0, 0, 214, 215, 5, 67, 0, 0, 215, 218, 5, 69, 0, 0, 216, 219, 5,
4448
- 67, 0, 0, 217, 219, 3, 16, 8, 0, 218, 216, 1, 0, 0, 0, 218, 217, 1, 0, 0, 0, 219, 220,
4449
- 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 220, 221, 1, 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 223,
4450
- 5, 70, 0, 0, 223, 15, 1, 0, 0, 0, 224, 225, 7, 1, 0, 0, 225, 226, 5, 1, 0, 0, 226, 227,
4451
- 3, 70, 35, 0, 227, 17, 1, 0, 0, 0, 228, 229, 5, 16, 0, 0, 229, 230, 3, 64, 32, 0, 230,
4452
- 19, 1, 0, 0, 0, 231, 232, 5, 59, 0, 0, 232, 235, 5, 1, 0, 0, 233, 236, 3, 70, 35, 0, 234,
4453
- 236, 5, 59, 0, 0, 235, 233, 1, 0, 0, 0, 235, 234, 1, 0, 0, 0, 236, 21, 1, 0, 0, 0, 237,
4454
- 240, 3, 64, 32, 0, 238, 240, 3, 52, 26, 0, 239, 237, 1, 0, 0, 0, 239, 238, 1, 0, 0, 0,
4455
- 240, 244, 1, 0, 0, 0, 241, 243, 3, 20, 10, 0, 242, 241, 1, 0, 0, 0, 243, 246, 1, 0, 0,
4456
- 0, 244, 242, 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 248, 1, 0, 0, 0, 246, 244, 1, 0, 0,
4457
- 0, 247, 249, 3, 18, 9, 0, 248, 247, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 23, 1, 0, 0,
4458
- 0, 250, 251, 5, 17, 0, 0, 251, 252, 3, 22, 11, 0, 252, 25, 1, 0, 0, 0, 253, 257, 3, 22,
4459
- 11, 0, 254, 257, 3, 18, 9, 0, 255, 257, 5, 20, 0, 0, 256, 253, 1, 0, 0, 0, 256, 254, 1,
4460
- 0, 0, 0, 256, 255, 1, 0, 0, 0, 257, 27, 1, 0, 0, 0, 258, 259, 7, 2, 0, 0, 259, 29, 1, 0,
4461
- 0, 0, 260, 261, 5, 18, 0, 0, 261, 262, 3, 26, 13, 0, 262, 31, 1, 0, 0, 0, 263, 264, 5,
4462
- 19, 0, 0, 264, 269, 3, 26, 13, 0, 265, 266, 5, 2, 0, 0, 266, 268, 3, 26, 13, 0, 267, 265,
4463
- 1, 0, 0, 0, 268, 271, 1, 0, 0, 0, 269, 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 33, 1,
4464
- 0, 0, 0, 271, 269, 1, 0, 0, 0, 272, 273, 5, 18, 0, 0, 273, 274, 3, 26, 13, 0, 274, 275,
4465
- 5, 19, 0, 0, 275, 280, 3, 26, 13, 0, 276, 277, 5, 2, 0, 0, 277, 279, 3, 26, 13, 0, 278,
4466
- 276, 1, 0, 0, 0, 279, 282, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281,
4467
- 283, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 283, 284, 5, 1, 0, 0, 284, 285, 5, 67, 0, 0, 285,
4468
- 288, 5, 69, 0, 0, 286, 289, 5, 67, 0, 0, 287, 289, 3, 36, 18, 0, 288, 286, 1, 0, 0, 0,
4469
- 288, 287, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0,
4470
- 291, 292, 1, 0, 0, 0, 292, 293, 5, 70, 0, 0, 293, 35, 1, 0, 0, 0, 294, 295, 3, 28, 14,
4471
- 0, 295, 296, 5, 1, 0, 0, 296, 301, 3, 38, 19, 0, 297, 298, 5, 2, 0, 0, 298, 300, 3, 38,
4472
- 19, 0, 299, 297, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0,
4473
- 0, 0, 302, 37, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 305, 7, 3, 0, 0, 305, 39, 1, 0, 0,
4474
- 0, 306, 307, 3, 44, 22, 0, 307, 308, 5, 67, 0, 0, 308, 311, 5, 69, 0, 0, 309, 312, 5,
4475
- 67, 0, 0, 310, 312, 3, 42, 21, 0, 311, 309, 1, 0, 0, 0, 311, 310, 1, 0, 0, 0, 312, 313,
4476
- 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 316,
4477
- 5, 70, 0, 0, 316, 41, 1, 0, 0, 0, 317, 320, 3, 2, 1, 0, 318, 320, 3, 46, 23, 0, 319, 317,
4478
- 1, 0, 0, 0, 319, 318, 1, 0, 0, 0, 320, 43, 1, 0, 0, 0, 321, 322, 3, 30, 15, 0, 322, 326,
4479
- 5, 1, 0, 0, 323, 325, 3, 146, 73, 0, 324, 323, 1, 0, 0, 0, 325, 328, 1, 0, 0, 0, 326, 324,
4480
- 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 45, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 329, 330, 3,
4481
- 28, 14, 0, 330, 333, 5, 1, 0, 0, 331, 334, 3, 48, 24, 0, 332, 334, 3, 50, 25, 0, 333,
4482
- 331, 1, 0, 0, 0, 333, 332, 1, 0, 0, 0, 334, 47, 1, 0, 0, 0, 335, 338, 3, 2, 1, 0, 336, 338,
4483
- 5, 57, 0, 0, 337, 335, 1, 0, 0, 0, 337, 336, 1, 0, 0, 0, 338, 49, 1, 0, 0, 0, 339, 340,
4484
- 3, 10, 5, 0, 340, 51, 1, 0, 0, 0, 341, 344, 3, 78, 39, 0, 342, 344, 3, 84, 42, 0, 343,
4485
- 341, 1, 0, 0, 0, 343, 342, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 346, 5, 3, 0, 0, 346,
4486
- 347, 3, 64, 32, 0, 347, 53, 1, 0, 0, 0, 348, 349, 3, 78, 39, 0, 349, 350, 7, 4, 0, 0, 350,
4487
- 351, 3, 64, 32, 0, 351, 55, 1, 0, 0, 0, 352, 353, 5, 59, 0, 0, 353, 354, 5, 3, 0, 0, 354,
4488
- 355, 3, 64, 32, 0, 355, 57, 1, 0, 0, 0, 356, 361, 3, 64, 32, 0, 357, 358, 5, 2, 0, 0, 358,
4489
- 360, 3, 64, 32, 0, 359, 357, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361, 359, 1, 0, 0, 0, 361,
4490
- 362, 1, 0, 0, 0, 362, 368, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364, 365, 5, 2, 0, 0, 365,
4491
- 367, 3, 56, 28, 0, 366, 364, 1, 0, 0, 0, 367, 370, 1, 0, 0, 0, 368, 366, 1, 0, 0, 0, 368,
4492
- 369, 1, 0, 0, 0, 369, 380, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 371, 376, 3, 56, 28, 0, 372,
4493
- 373, 5, 2, 0, 0, 373, 375, 3, 56, 28, 0, 374, 372, 1, 0, 0, 0, 375, 378, 1, 0, 0, 0, 376,
4494
- 374, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 379,
4495
- 356, 1, 0, 0, 0, 379, 371, 1, 0, 0, 0, 380, 59, 1, 0, 0, 0, 381, 382, 3, 78, 39, 0, 382,
4496
- 383, 5, 3, 0, 0, 383, 384, 3, 64, 32, 0, 384, 61, 1, 0, 0, 0, 385, 386, 5, 4, 0, 0, 386,
4497
- 387, 5, 59, 0, 0, 387, 388, 5, 3, 0, 0, 388, 389, 3, 64, 32, 0, 389, 63, 1, 0, 0, 0, 390,
4498
- 391, 6, 32, -1, 0, 391, 392, 5, 55, 0, 0, 392, 393, 3, 64, 32, 0, 393, 394, 5, 56, 0,
4499
- 0, 394, 408, 1, 0, 0, 0, 395, 398, 3, 70, 35, 0, 396, 398, 3, 78, 39, 0, 397, 395, 1,
4500
- 0, 0, 0, 397, 396, 1, 0, 0, 0, 398, 408, 1, 0, 0, 0, 399, 400, 3, 68, 34, 0, 400, 401,
4501
- 3, 64, 32, 11, 401, 408, 1, 0, 0, 0, 402, 408, 3, 92, 46, 0, 403, 408, 3, 96, 48, 0, 404,
4502
- 408, 3, 98, 49, 0, 405, 408, 3, 84, 42, 0, 406, 408, 3, 114, 57, 0, 407, 390, 1, 0, 0,
4503
- 0, 407, 397, 1, 0, 0, 0, 407, 399, 1, 0, 0, 0, 407, 402, 1, 0, 0, 0, 407, 403, 1, 0, 0,
4504
- 0, 407, 404, 1, 0, 0, 0, 407, 405, 1, 0, 0, 0, 407, 406, 1, 0, 0, 0, 408, 429, 1, 0, 0,
4505
- 0, 409, 410, 10, 10, 0, 0, 410, 411, 7, 5, 0, 0, 411, 428, 3, 64, 32, 11, 412, 413, 10,
4506
- 9, 0, 0, 413, 414, 7, 6, 0, 0, 414, 428, 3, 64, 32, 10, 415, 416, 10, 8, 0, 0, 416, 417,
4507
- 3, 66, 33, 0, 417, 418, 3, 64, 32, 9, 418, 428, 1, 0, 0, 0, 419, 420, 10, 7, 0, 0, 420,
4508
- 421, 7, 7, 0, 0, 421, 428, 3, 64, 32, 8, 422, 423, 10, 1, 0, 0, 423, 424, 5, 5, 0, 0, 424,
4509
- 425, 3, 64, 32, 0, 425, 426, 5, 6, 0, 0, 426, 428, 1, 0, 0, 0, 427, 409, 1, 0, 0, 0, 427,
4510
- 412, 1, 0, 0, 0, 427, 415, 1, 0, 0, 0, 427, 419, 1, 0, 0, 0, 427, 422, 1, 0, 0, 0, 428,
4511
- 431, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 65, 1, 0, 0, 0, 431, 429,
4512
- 1, 0, 0, 0, 432, 433, 7, 8, 0, 0, 433, 67, 1, 0, 0, 0, 434, 435, 7, 9, 0, 0, 435, 69, 1,
4513
- 0, 0, 0, 436, 438, 5, 45, 0, 0, 437, 436, 1, 0, 0, 0, 437, 438, 1, 0, 0, 0, 438, 439, 1,
4514
- 0, 0, 0, 439, 440, 7, 10, 0, 0, 440, 71, 1, 0, 0, 0, 441, 442, 5, 24, 0, 0, 442, 443, 5,
4515
- 59, 0, 0, 443, 445, 5, 55, 0, 0, 444, 446, 3, 76, 38, 0, 445, 444, 1, 0, 0, 0, 445, 446,
4516
- 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 448, 5, 56, 0, 0, 448, 449, 5, 1, 0, 0, 449, 450,
4517
- 5, 67, 0, 0, 450, 453, 5, 69, 0, 0, 451, 454, 5, 67, 0, 0, 452, 454, 3, 74, 37, 0, 453,
4518
- 451, 1, 0, 0, 0, 453, 452, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 455,
4519
- 456, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 458, 5, 70, 0, 0, 458, 73, 1, 0, 0, 0, 459,
4520
- 462, 3, 2, 1, 0, 460, 462, 3, 88, 44, 0, 461, 459, 1, 0, 0, 0, 461, 460, 1, 0, 0, 0, 462,
4521
- 75, 1, 0, 0, 0, 463, 468, 5, 59, 0, 0, 464, 465, 5, 2, 0, 0, 465, 467, 5, 59, 0, 0, 466,
4522
- 464, 1, 0, 0, 0, 467, 470, 1, 0, 0, 0, 468, 466, 1, 0, 0, 0, 468, 469, 1, 0, 0, 0, 469,
4523
- 477, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 471, 472, 5, 2, 0, 0, 472, 473, 5, 59, 0, 0, 473,
4524
- 474, 5, 3, 0, 0, 474, 476, 3, 70, 35, 0, 475, 471, 1, 0, 0, 0, 476, 479, 1, 0, 0, 0, 477,
4525
- 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 493, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 480,
4526
- 481, 5, 59, 0, 0, 481, 482, 5, 3, 0, 0, 482, 489, 3, 70, 35, 0, 483, 484, 5, 2, 0, 0, 484,
4527
- 485, 5, 59, 0, 0, 485, 486, 5, 3, 0, 0, 486, 488, 3, 70, 35, 0, 487, 483, 1, 0, 0, 0, 488,
4528
- 491, 1, 0, 0, 0, 489, 487, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490, 493, 1, 0, 0, 0, 491,
4529
- 489, 1, 0, 0, 0, 492, 463, 1, 0, 0, 0, 492, 480, 1, 0, 0, 0, 493, 77, 1, 0, 0, 0, 494, 498,
4530
- 5, 59, 0, 0, 495, 497, 3, 82, 41, 0, 496, 495, 1, 0, 0, 0, 497, 500, 1, 0, 0, 0, 498, 496,
4531
- 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 79, 1, 0, 0, 0, 500, 498, 1, 0, 0, 0, 501, 503, 5,
4532
- 55, 0, 0, 502, 504, 3, 58, 29, 0, 503, 502, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505,
4533
- 1, 0, 0, 0, 505, 508, 5, 56, 0, 0, 506, 508, 3, 82, 41, 0, 507, 501, 1, 0, 0, 0, 507, 506,
4534
- 1, 0, 0, 0, 508, 81, 1, 0, 0, 0, 509, 510, 5, 7, 0, 0, 510, 516, 5, 59, 0, 0, 511, 512,
4535
- 5, 5, 0, 0, 512, 513, 3, 64, 32, 0, 513, 514, 5, 6, 0, 0, 514, 516, 1, 0, 0, 0, 515, 509,
4536
- 1, 0, 0, 0, 515, 511, 1, 0, 0, 0, 516, 83, 1, 0, 0, 0, 517, 519, 3, 86, 43, 0, 518, 517,
4537
- 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 522, 5, 59, 0, 0, 521, 523,
4538
- 3, 80, 40, 0, 522, 521, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 522, 1, 0, 0, 0, 524, 525,
4539
- 1, 0, 0, 0, 525, 85, 1, 0, 0, 0, 526, 528, 5, 44, 0, 0, 527, 526, 1, 0, 0, 0, 527, 528,
4540
- 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529, 531, 5, 46, 0, 0, 530, 532, 3, 64, 32, 0, 531, 530,
4541
- 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 87, 1, 0, 0, 0, 533, 534, 5, 23, 0, 0, 534, 535,
4542
- 3, 64, 32, 0, 535, 89, 1, 0, 0, 0, 536, 537, 3, 106, 53, 0, 537, 538, 5, 1, 0, 0, 538,
4543
- 539, 3, 10, 5, 0, 539, 91, 1, 0, 0, 0, 540, 541, 5, 11, 0, 0, 541, 542, 5, 12, 0, 0, 542,
4544
- 543, 5, 1, 0, 0, 543, 544, 5, 67, 0, 0, 544, 547, 5, 69, 0, 0, 545, 548, 5, 67, 0, 0, 546,
4545
- 548, 3, 104, 52, 0, 547, 545, 1, 0, 0, 0, 547, 546, 1, 0, 0, 0, 548, 549, 1, 0, 0, 0, 549,
4546
- 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 552, 5, 70, 0, 0, 552,
4547
- 93, 1, 0, 0, 0, 553, 554, 5, 67, 0, 0, 554, 557, 5, 69, 0, 0, 555, 558, 5, 67, 0, 0, 556,
4548
- 558, 3, 102, 51, 0, 557, 555, 1, 0, 0, 0, 557, 556, 1, 0, 0, 0, 558, 559, 1, 0, 0, 0, 559,
4549
- 557, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 561, 1, 0, 0, 0, 561, 562, 5, 70, 0, 0, 562,
4550
- 95, 1, 0, 0, 0, 563, 564, 5, 11, 0, 0, 564, 568, 5, 13, 0, 0, 565, 566, 5, 55, 0, 0, 566,
4551
- 567, 5, 59, 0, 0, 567, 569, 5, 56, 0, 0, 568, 565, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569,
4552
- 570, 1, 0, 0, 0, 570, 571, 5, 1, 0, 0, 571, 572, 3, 94, 47, 0, 572, 97, 1, 0, 0, 0, 573,
4553
- 574, 5, 11, 0, 0, 574, 575, 5, 14, 0, 0, 575, 576, 5, 1, 0, 0, 576, 577, 5, 67, 0, 0, 577,
4554
- 581, 5, 69, 0, 0, 578, 582, 5, 67, 0, 0, 579, 582, 3, 104, 52, 0, 580, 582, 3, 90, 45,
4555
- 0, 581, 578, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581, 580, 1, 0, 0, 0, 582, 583, 1, 0, 0,
4556
- 0, 583, 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, 586, 5, 70, 0,
4557
- 0, 586, 99, 1, 0, 0, 0, 587, 588, 5, 67, 0, 0, 588, 591, 5, 69, 0, 0, 589, 592, 5, 67,
4558
- 0, 0, 590, 592, 3, 104, 52, 0, 591, 589, 1, 0, 0, 0, 591, 590, 1, 0, 0, 0, 592, 593, 1,
4559
- 0, 0, 0, 593, 591, 1, 0, 0, 0, 593, 594, 1, 0, 0, 0, 594, 595, 1, 0, 0, 0, 595, 596, 5,
4560
- 70, 0, 0, 596, 101, 1, 0, 0, 0, 597, 599, 7, 11, 0, 0, 598, 600, 5, 1, 0, 0, 599, 598,
4561
- 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 607, 1, 0, 0, 0, 601, 608, 3, 58, 29, 0, 602, 603,
4562
- 5, 55, 0, 0, 603, 604, 3, 58, 29, 0, 604, 605, 5, 56, 0, 0, 605, 608, 1, 0, 0, 0, 606,
4563
- 608, 3, 100, 50, 0, 607, 601, 1, 0, 0, 0, 607, 602, 1, 0, 0, 0, 607, 606, 1, 0, 0, 0, 608,
4564
- 624, 1, 0, 0, 0, 609, 610, 5, 27, 0, 0, 610, 615, 5, 59, 0, 0, 611, 612, 5, 2, 0, 0, 612,
4565
- 614, 5, 59, 0, 0, 613, 611, 1, 0, 0, 0, 614, 617, 1, 0, 0, 0, 615, 613, 1, 0, 0, 0, 615,
4566
- 616, 1, 0, 0, 0, 616, 618, 1, 0, 0, 0, 617, 615, 1, 0, 0, 0, 618, 619, 5, 28, 0, 0, 619,
4567
- 620, 3, 64, 32, 0, 620, 621, 5, 1, 0, 0, 621, 622, 3, 94, 47, 0, 622, 624, 1, 0, 0, 0,
4568
- 623, 597, 1, 0, 0, 0, 623, 609, 1, 0, 0, 0, 624, 103, 1, 0, 0, 0, 625, 626, 3, 106, 53,
4569
- 0, 626, 627, 5, 1, 0, 0, 627, 628, 3, 108, 54, 0, 628, 105, 1, 0, 0, 0, 629, 630, 7, 12,
4570
- 0, 0, 630, 107, 1, 0, 0, 0, 631, 641, 3, 100, 50, 0, 632, 637, 3, 64, 32, 0, 633, 634,
4571
- 5, 2, 0, 0, 634, 636, 3, 64, 32, 0, 635, 633, 1, 0, 0, 0, 636, 639, 1, 0, 0, 0, 637, 635,
4572
- 1, 0, 0, 0, 637, 638, 1, 0, 0, 0, 638, 641, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 640, 631,
4573
- 1, 0, 0, 0, 640, 632, 1, 0, 0, 0, 641, 109, 1, 0, 0, 0, 642, 645, 5, 59, 0, 0, 643, 646,
4574
- 5, 60, 0, 0, 644, 646, 3, 64, 32, 0, 645, 643, 1, 0, 0, 0, 645, 644, 1, 0, 0, 0, 646, 649,
4575
- 1, 0, 0, 0, 647, 649, 5, 59, 0, 0, 648, 642, 1, 0, 0, 0, 648, 647, 1, 0, 0, 0, 649, 111,
4576
- 1, 0, 0, 0, 650, 654, 5, 15, 0, 0, 651, 653, 3, 110, 55, 0, 652, 651, 1, 0, 0, 0, 653,
4577
- 656, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 654, 655, 1, 0, 0, 0, 655, 113, 1, 0, 0, 0, 656,
4578
- 654, 1, 0, 0, 0, 657, 668, 5, 5, 0, 0, 658, 663, 3, 64, 32, 0, 659, 660, 5, 2, 0, 0, 660,
4579
- 662, 3, 64, 32, 0, 661, 659, 1, 0, 0, 0, 662, 665, 1, 0, 0, 0, 663, 661, 1, 0, 0, 0, 663,
4580
- 664, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665, 663, 1, 0, 0, 0, 666, 658, 1, 0, 0, 0, 667,
4581
- 670, 1, 0, 0, 0, 668, 666, 1, 0, 0, 0, 668, 669, 1, 0, 0, 0, 669, 671, 1, 0, 0, 0, 670,
4582
- 668, 1, 0, 0, 0, 671, 672, 5, 6, 0, 0, 672, 115, 1, 0, 0, 0, 673, 676, 5, 20, 0, 0, 674,
4583
- 677, 5, 59, 0, 0, 675, 677, 3, 64, 32, 0, 676, 674, 1, 0, 0, 0, 676, 675, 1, 0, 0, 0, 677,
4584
- 117, 1, 0, 0, 0, 678, 679, 5, 25, 0, 0, 679, 696, 5, 59, 0, 0, 680, 681, 5, 26, 0, 0, 681,
4585
- 682, 5, 59, 0, 0, 682, 683, 5, 25, 0, 0, 683, 696, 5, 47, 0, 0, 684, 685, 5, 26, 0, 0,
4586
- 685, 686, 5, 59, 0, 0, 686, 687, 5, 25, 0, 0, 687, 692, 5, 59, 0, 0, 688, 689, 5, 2, 0,
4587
- 0, 689, 691, 5, 59, 0, 0, 690, 688, 1, 0, 0, 0, 691, 694, 1, 0, 0, 0, 692, 690, 1, 0, 0,
4588
- 0, 692, 693, 1, 0, 0, 0, 693, 696, 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, 695, 678, 1, 0, 0,
4589
- 0, 695, 680, 1, 0, 0, 0, 695, 684, 1, 0, 0, 0, 696, 119, 1, 0, 0, 0, 697, 698, 7, 13, 0,
4590
- 0, 698, 699, 5, 1, 0, 0, 699, 700, 3, 10, 5, 0, 700, 121, 1, 0, 0, 0, 701, 702, 5, 31,
4591
- 0, 0, 702, 703, 3, 64, 32, 0, 703, 704, 5, 1, 0, 0, 704, 708, 3, 10, 5, 0, 705, 707, 3,
4592
- 124, 62, 0, 706, 705, 1, 0, 0, 0, 707, 710, 1, 0, 0, 0, 708, 706, 1, 0, 0, 0, 708, 709,
4593
- 1, 0, 0, 0, 709, 712, 1, 0, 0, 0, 710, 708, 1, 0, 0, 0, 711, 713, 3, 126, 63, 0, 712, 711,
4594
- 1, 0, 0, 0, 712, 713, 1, 0, 0, 0, 713, 123, 1, 0, 0, 0, 714, 715, 5, 32, 0, 0, 715, 716,
4595
- 5, 31, 0, 0, 716, 717, 3, 64, 32, 0, 717, 718, 5, 1, 0, 0, 718, 719, 3, 10, 5, 0, 719,
4596
- 125, 1, 0, 0, 0, 720, 721, 5, 32, 0, 0, 721, 722, 5, 1, 0, 0, 722, 723, 3, 10, 5, 0, 723,
4597
- 127, 1, 0, 0, 0, 724, 725, 5, 29, 0, 0, 725, 726, 3, 64, 32, 0, 726, 727, 5, 1, 0, 0, 727,
4598
- 728, 3, 10, 5, 0, 728, 129, 1, 0, 0, 0, 729, 730, 5, 27, 0, 0, 730, 735, 5, 59, 0, 0, 731,
4599
- 732, 5, 2, 0, 0, 732, 734, 5, 59, 0, 0, 733, 731, 1, 0, 0, 0, 734, 737, 1, 0, 0, 0, 735,
4600
- 733, 1, 0, 0, 0, 735, 736, 1, 0, 0, 0, 736, 738, 1, 0, 0, 0, 737, 735, 1, 0, 0, 0, 738,
4601
- 739, 5, 28, 0, 0, 739, 740, 3, 64, 32, 0, 740, 741, 5, 1, 0, 0, 741, 742, 3, 10, 5, 0,
4602
- 742, 131, 1, 0, 0, 0, 743, 744, 5, 8, 0, 0, 744, 745, 5, 1, 0, 0, 745, 750, 3, 64, 32,
4603
- 0, 746, 747, 5, 2, 0, 0, 747, 749, 3, 64, 32, 0, 748, 746, 1, 0, 0, 0, 749, 752, 1, 0,
4604
- 0, 0, 750, 748, 1, 0, 0, 0, 750, 751, 1, 0, 0, 0, 751, 753, 1, 0, 0, 0, 752, 750, 1, 0,
4605
- 0, 0, 753, 754, 5, 1, 0, 0, 754, 755, 3, 136, 68, 0, 755, 133, 1, 0, 0, 0, 756, 757, 7,
4606
- 14, 0, 0, 757, 135, 1, 0, 0, 0, 758, 759, 5, 67, 0, 0, 759, 762, 5, 69, 0, 0, 760, 763,
4607
- 5, 67, 0, 0, 761, 763, 3, 138, 69, 0, 762, 760, 1, 0, 0, 0, 762, 761, 1, 0, 0, 0, 763,
4608
- 764, 1, 0, 0, 0, 764, 762, 1, 0, 0, 0, 764, 765, 1, 0, 0, 0, 765, 766, 1, 0, 0, 0, 766,
4609
- 767, 5, 70, 0, 0, 767, 137, 1, 0, 0, 0, 768, 772, 3, 140, 70, 0, 769, 772, 3, 144, 72,
4610
- 0, 770, 772, 3, 142, 71, 0, 771, 768, 1, 0, 0, 0, 771, 769, 1, 0, 0, 0, 771, 770, 1, 0,
4611
- 0, 0, 772, 139, 1, 0, 0, 0, 773, 774, 3, 134, 67, 0, 774, 775, 5, 1, 0, 0, 775, 783, 3,
4612
- 64, 32, 0, 776, 777, 5, 2, 0, 0, 777, 778, 3, 134, 67, 0, 778, 779, 5, 1, 0, 0, 779, 780,
4613
- 3, 64, 32, 0, 780, 782, 1, 0, 0, 0, 781, 776, 1, 0, 0, 0, 782, 785, 1, 0, 0, 0, 783, 781,
4614
- 1, 0, 0, 0, 783, 784, 1, 0, 0, 0, 784, 790, 1, 0, 0, 0, 785, 783, 1, 0, 0, 0, 786, 787,
4615
- 5, 2, 0, 0, 787, 789, 3, 134, 67, 0, 788, 786, 1, 0, 0, 0, 789, 792, 1, 0, 0, 0, 790, 788,
4616
- 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, 793, 1, 0, 0, 0, 792, 790, 1, 0, 0, 0, 793, 803,
4617
- 5, 1, 0, 0, 794, 804, 3, 136, 68, 0, 795, 800, 3, 64, 32, 0, 796, 797, 5, 2, 0, 0, 797,
4618
- 799, 3, 64, 32, 0, 798, 796, 1, 0, 0, 0, 799, 802, 1, 0, 0, 0, 800, 798, 1, 0, 0, 0, 800,
4619
- 801, 1, 0, 0, 0, 801, 804, 1, 0, 0, 0, 802, 800, 1, 0, 0, 0, 803, 794, 1, 0, 0, 0, 803,
4620
- 795, 1, 0, 0, 0, 804, 141, 1, 0, 0, 0, 805, 806, 3, 134, 67, 0, 806, 807, 5, 1, 0, 0, 807,
4621
- 808, 3, 136, 68, 0, 808, 143, 1, 0, 0, 0, 809, 810, 3, 134, 67, 0, 810, 811, 5, 1, 0,
4622
- 0, 811, 816, 3, 64, 32, 0, 812, 813, 5, 2, 0, 0, 813, 815, 3, 64, 32, 0, 814, 812, 1,
4623
- 0, 0, 0, 815, 818, 1, 0, 0, 0, 816, 814, 1, 0, 0, 0, 816, 817, 1, 0, 0, 0, 817, 145, 1,
4624
- 0, 0, 0, 818, 816, 1, 0, 0, 0, 819, 820, 5, 54, 0, 0, 820, 821, 5, 59, 0, 0, 821, 147,
4625
- 1, 0, 0, 0, 89, 150, 152, 157, 159, 177, 184, 188, 196, 202, 204, 218, 220, 235, 239,
4626
- 244, 248, 256, 269, 280, 288, 290, 301, 311, 313, 319, 326, 333, 337, 343, 361,
4627
- 368, 376, 379, 397, 407, 427, 429, 437, 445, 453, 455, 461, 468, 477, 489, 492,
4628
- 498, 503, 507, 515, 518, 524, 527, 531, 547, 549, 557, 559, 568, 581, 583, 591,
4629
- 593, 599, 607, 615, 623, 637, 640, 645, 648, 654, 663, 668, 676, 692, 695, 708,
4630
- 712, 735, 750, 762, 764, 771, 783, 790, 800, 803, 816
4435
+ 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 1, 0, 1, 0, 5, 0, 153, 8, 0, 10, 0, 12, 0, 156, 9, 0, 1,
4436
+ 0, 1, 0, 4, 0, 160, 8, 0, 11, 0, 12, 0, 161, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4437
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 180, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
4438
+ 3, 2, 187, 8, 2, 1, 3, 1, 3, 3, 3, 191, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 199,
4439
+ 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 205, 8, 5, 11, 5, 12, 5, 206, 1, 5, 1, 5, 1, 6, 1, 6, 1,
4440
+ 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 221, 8, 7, 11, 7, 12, 7, 222, 1, 7, 1, 7,
4441
+ 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 238, 8, 10, 1,
4442
+ 11, 1, 11, 3, 11, 242, 8, 11, 1, 11, 5, 11, 245, 8, 11, 10, 11, 12, 11, 248, 9, 11, 1,
4443
+ 11, 3, 11, 251, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 259, 8, 13, 1, 14,
4444
+ 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 270, 8, 16, 10, 16, 12, 16,
4445
+ 273, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 281, 8, 17, 10, 17, 12, 17,
4446
+ 284, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 291, 8, 17, 11, 17, 12, 17, 292,
4447
+ 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 302, 8, 18, 10, 18, 12, 18, 305,
4448
+ 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 314, 8, 20, 11, 20, 12, 20,
4449
+ 315, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 322, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 327, 8,
4450
+ 22, 10, 22, 12, 22, 330, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 336, 8, 23, 1, 24, 1,
4451
+ 24, 3, 24, 340, 8, 24, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 346, 8, 26, 1, 26, 1, 26, 1, 26,
4452
+ 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 362,
4453
+ 8, 29, 10, 29, 12, 29, 365, 9, 29, 1, 29, 1, 29, 5, 29, 369, 8, 29, 10, 29, 12, 29, 372,
4454
+ 9, 29, 1, 29, 1, 29, 1, 29, 5, 29, 377, 8, 29, 10, 29, 12, 29, 380, 9, 29, 3, 29, 382,
4455
+ 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32,
4456
+ 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 400, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
4457
+ 1, 32, 1, 32, 3, 32, 410, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
4458
+ 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 430, 8, 32,
4459
+ 10, 32, 12, 32, 433, 9, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 3, 35, 440, 8, 35, 1, 35,
4460
+ 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 448, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36,
4461
+ 1, 36, 4, 36, 456, 8, 36, 11, 36, 12, 36, 457, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 464,
4462
+ 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 469, 8, 38, 10, 38, 12, 38, 472, 9, 38, 1, 38, 1, 38,
4463
+ 1, 38, 1, 38, 5, 38, 478, 8, 38, 10, 38, 12, 38, 481, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4464
+ 1, 38, 1, 38, 1, 38, 5, 38, 490, 8, 38, 10, 38, 12, 38, 493, 9, 38, 3, 38, 495, 8, 38,
4465
+ 1, 39, 1, 39, 5, 39, 499, 8, 39, 10, 39, 12, 39, 502, 9, 39, 1, 40, 1, 40, 3, 40, 506,
4466
+ 8, 40, 1, 40, 1, 40, 3, 40, 510, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41,
4467
+ 518, 8, 41, 1, 42, 3, 42, 521, 8, 42, 1, 42, 1, 42, 4, 42, 525, 8, 42, 11, 42, 12, 42,
4468
+ 526, 1, 43, 3, 43, 530, 8, 43, 1, 43, 1, 43, 3, 43, 534, 8, 43, 1, 44, 1, 44, 1, 44, 1,
4469
+ 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 550, 8,
4470
+ 46, 11, 46, 12, 46, 551, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 560, 8, 47, 11,
4471
+ 47, 12, 47, 561, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 571, 8, 48, 1,
4472
+ 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 584, 8,
4473
+ 49, 11, 49, 12, 49, 585, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 594, 8, 50, 11,
4474
+ 50, 12, 50, 595, 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 602, 8, 51, 1, 51, 1, 51, 1, 51, 1,
4475
+ 51, 1, 51, 1, 51, 3, 51, 610, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 616, 8, 51, 10,
4476
+ 51, 12, 51, 619, 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 626, 8, 51, 1, 52, 1,
4477
+ 52, 5, 52, 630, 8, 52, 10, 52, 12, 52, 633, 9, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1,
4478
+ 54, 1, 54, 1, 54, 1, 54, 5, 54, 644, 8, 54, 10, 54, 12, 54, 647, 9, 54, 3, 54, 649, 8,
4479
+ 54, 1, 55, 1, 55, 1, 55, 3, 55, 654, 8, 55, 1, 55, 3, 55, 657, 8, 55, 1, 56, 1, 56, 5, 56,
4480
+ 661, 8, 56, 10, 56, 12, 56, 664, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 670, 8, 57,
4481
+ 10, 57, 12, 57, 673, 9, 57, 5, 57, 675, 8, 57, 10, 57, 12, 57, 678, 9, 57, 1, 57, 1, 57,
4482
+ 1, 58, 1, 58, 1, 58, 3, 58, 685, 8, 58, 1, 59, 1, 59, 1, 59, 3, 59, 690, 8, 59, 1, 59, 1,
4483
+ 59, 1, 59, 1, 59, 1, 59, 3, 59, 697, 8, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5,
4484
+ 59, 705, 8, 59, 10, 59, 12, 59, 708, 9, 59, 1, 59, 3, 59, 711, 8, 59, 3, 59, 713, 8, 59,
4485
+ 1, 60, 1, 60, 5, 60, 717, 8, 60, 10, 60, 12, 60, 720, 9, 60, 1, 61, 1, 61, 1, 61, 1, 61,
4486
+ 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 5, 62, 731, 8, 62, 10, 62, 12, 62, 734, 9, 62, 1, 62,
4487
+ 3, 62, 737, 8, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64,
4488
+ 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 5, 66, 758, 8, 66, 10, 66,
4489
+ 12, 66, 761, 9, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67,
4490
+ 5, 67, 773, 8, 67, 10, 67, 12, 67, 776, 9, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 69,
4491
+ 1, 69, 1, 69, 1, 69, 4, 69, 787, 8, 69, 11, 69, 12, 69, 788, 1, 69, 1, 69, 1, 70, 1, 70,
4492
+ 1, 70, 3, 70, 796, 8, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 5, 71,
4493
+ 806, 8, 71, 10, 71, 12, 71, 809, 9, 71, 1, 71, 1, 71, 5, 71, 813, 8, 71, 10, 71, 12, 71,
4494
+ 816, 9, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 5, 71, 823, 8, 71, 10, 71, 12, 71, 826,
4495
+ 9, 71, 3, 71, 828, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73,
4496
+ 5, 73, 839, 8, 73, 10, 73, 12, 73, 842, 9, 73, 1, 74, 1, 74, 1, 74, 1, 74, 0, 1, 64, 75,
4497
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44,
4498
+ 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88,
4499
+ 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124,
4500
+ 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 0, 16, 2, 0, 10, 10, 20,
4501
+ 22, 1, 0, 59, 60, 2, 0, 60, 60, 63, 63, 2, 0, 57, 57, 60, 60, 1, 0, 49, 53, 1, 0, 46, 48,
4502
+ 1, 0, 44, 45, 1, 0, 42, 43, 1, 0, 36, 41, 2, 0, 33, 33, 45, 45, 2, 0, 58, 58, 60, 64, 2,
4503
+ 0, 16, 16, 59, 59, 2, 0, 59, 60, 63, 63, 2, 0, 45, 45, 59, 59, 1, 0, 34, 35, 2, 0, 59, 60,
4504
+ 62, 64, 898, 0, 154, 1, 0, 0, 0, 2, 179, 1, 0, 0, 0, 4, 186, 1, 0, 0, 0, 6, 190, 1, 0, 0,
4505
+ 0, 8, 198, 1, 0, 0, 0, 10, 200, 1, 0, 0, 0, 12, 210, 1, 0, 0, 0, 14, 214, 1, 0, 0, 0, 16,
4506
+ 226, 1, 0, 0, 0, 18, 230, 1, 0, 0, 0, 20, 233, 1, 0, 0, 0, 22, 241, 1, 0, 0, 0, 24, 252,
4507
+ 1, 0, 0, 0, 26, 258, 1, 0, 0, 0, 28, 260, 1, 0, 0, 0, 30, 262, 1, 0, 0, 0, 32, 265, 1, 0,
4508
+ 0, 0, 34, 274, 1, 0, 0, 0, 36, 296, 1, 0, 0, 0, 38, 306, 1, 0, 0, 0, 40, 308, 1, 0, 0, 0,
4509
+ 42, 321, 1, 0, 0, 0, 44, 323, 1, 0, 0, 0, 46, 331, 1, 0, 0, 0, 48, 339, 1, 0, 0, 0, 50, 341,
4510
+ 1, 0, 0, 0, 52, 345, 1, 0, 0, 0, 54, 350, 1, 0, 0, 0, 56, 354, 1, 0, 0, 0, 58, 381, 1, 0,
4511
+ 0, 0, 60, 383, 1, 0, 0, 0, 62, 387, 1, 0, 0, 0, 64, 409, 1, 0, 0, 0, 66, 434, 1, 0, 0, 0,
4512
+ 68, 436, 1, 0, 0, 0, 70, 439, 1, 0, 0, 0, 72, 443, 1, 0, 0, 0, 74, 463, 1, 0, 0, 0, 76, 494,
4513
+ 1, 0, 0, 0, 78, 496, 1, 0, 0, 0, 80, 509, 1, 0, 0, 0, 82, 517, 1, 0, 0, 0, 84, 520, 1, 0,
4514
+ 0, 0, 86, 529, 1, 0, 0, 0, 88, 535, 1, 0, 0, 0, 90, 538, 1, 0, 0, 0, 92, 542, 1, 0, 0, 0,
4515
+ 94, 555, 1, 0, 0, 0, 96, 565, 1, 0, 0, 0, 98, 575, 1, 0, 0, 0, 100, 589, 1, 0, 0, 0, 102,
4516
+ 625, 1, 0, 0, 0, 104, 627, 1, 0, 0, 0, 106, 637, 1, 0, 0, 0, 108, 648, 1, 0, 0, 0, 110,
4517
+ 656, 1, 0, 0, 0, 112, 658, 1, 0, 0, 0, 114, 665, 1, 0, 0, 0, 116, 681, 1, 0, 0, 0, 118,
4518
+ 712, 1, 0, 0, 0, 120, 714, 1, 0, 0, 0, 122, 721, 1, 0, 0, 0, 124, 725, 1, 0, 0, 0, 126,
4519
+ 738, 1, 0, 0, 0, 128, 744, 1, 0, 0, 0, 130, 748, 1, 0, 0, 0, 132, 753, 1, 0, 0, 0, 134,
4520
+ 767, 1, 0, 0, 0, 136, 780, 1, 0, 0, 0, 138, 782, 1, 0, 0, 0, 140, 795, 1, 0, 0, 0, 142,
4521
+ 797, 1, 0, 0, 0, 144, 829, 1, 0, 0, 0, 146, 833, 1, 0, 0, 0, 148, 843, 1, 0, 0, 0, 150,
4522
+ 153, 3, 118, 59, 0, 151, 153, 5, 67, 0, 0, 152, 150, 1, 0, 0, 0, 152, 151, 1, 0, 0, 0,
4523
+ 153, 156, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155, 159, 1, 0, 0, 0,
4524
+ 156, 154, 1, 0, 0, 0, 157, 160, 3, 2, 1, 0, 158, 160, 5, 67, 0, 0, 159, 157, 1, 0, 0, 0,
4525
+ 159, 158, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 159, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0,
4526
+ 162, 163, 1, 0, 0, 0, 163, 164, 5, 0, 0, 1, 164, 1, 1, 0, 0, 0, 165, 180, 3, 6, 3, 0, 166,
4527
+ 180, 3, 52, 26, 0, 167, 180, 3, 54, 27, 0, 168, 180, 3, 60, 30, 0, 169, 180, 3, 14, 7,
4528
+ 0, 170, 180, 3, 62, 31, 0, 171, 180, 3, 72, 36, 0, 172, 180, 3, 84, 42, 0, 173, 180,
4529
+ 3, 118, 59, 0, 174, 180, 3, 78, 39, 0, 175, 180, 3, 122, 61, 0, 176, 180, 3, 4, 2, 0,
4530
+ 177, 180, 3, 148, 74, 0, 178, 180, 3, 134, 67, 0, 179, 165, 1, 0, 0, 0, 179, 166, 1,
4531
+ 0, 0, 0, 179, 167, 1, 0, 0, 0, 179, 168, 1, 0, 0, 0, 179, 169, 1, 0, 0, 0, 179, 170, 1,
4532
+ 0, 0, 0, 179, 171, 1, 0, 0, 0, 179, 172, 1, 0, 0, 0, 179, 173, 1, 0, 0, 0, 179, 174, 1,
4533
+ 0, 0, 0, 179, 175, 1, 0, 0, 0, 179, 176, 1, 0, 0, 0, 179, 177, 1, 0, 0, 0, 179, 178, 1,
4534
+ 0, 0, 0, 180, 3, 1, 0, 0, 0, 181, 187, 3, 124, 62, 0, 182, 187, 3, 130, 65, 0, 183, 187,
4535
+ 3, 132, 66, 0, 184, 187, 5, 9, 0, 0, 185, 187, 5, 30, 0, 0, 186, 181, 1, 0, 0, 0, 186,
4536
+ 182, 1, 0, 0, 0, 186, 183, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 185, 1, 0, 0, 0, 187,
4537
+ 5, 1, 0, 0, 0, 188, 191, 3, 8, 4, 0, 189, 191, 3, 12, 6, 0, 190, 188, 1, 0, 0, 0, 190, 189,
4538
+ 1, 0, 0, 0, 191, 7, 1, 0, 0, 0, 192, 199, 3, 24, 12, 0, 193, 199, 3, 32, 16, 0, 194, 199,
4539
+ 3, 30, 15, 0, 195, 199, 3, 40, 20, 0, 196, 199, 3, 112, 56, 0, 197, 199, 3, 116, 58,
4540
+ 0, 198, 192, 1, 0, 0, 0, 198, 193, 1, 0, 0, 0, 198, 194, 1, 0, 0, 0, 198, 195, 1, 0, 0,
4541
+ 0, 198, 196, 1, 0, 0, 0, 198, 197, 1, 0, 0, 0, 199, 9, 1, 0, 0, 0, 200, 201, 5, 67, 0, 0,
4542
+ 201, 204, 5, 69, 0, 0, 202, 205, 5, 67, 0, 0, 203, 205, 3, 2, 1, 0, 204, 202, 1, 0, 0,
4543
+ 0, 204, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 204, 1, 0, 0, 0, 206, 207, 1, 0, 0,
4544
+ 0, 207, 208, 1, 0, 0, 0, 208, 209, 5, 70, 0, 0, 209, 11, 1, 0, 0, 0, 210, 211, 7, 0, 0,
4545
+ 0, 211, 212, 5, 1, 0, 0, 212, 213, 3, 10, 5, 0, 213, 13, 1, 0, 0, 0, 214, 215, 3, 78, 39,
4546
+ 0, 215, 216, 5, 1, 0, 0, 216, 217, 5, 67, 0, 0, 217, 220, 5, 69, 0, 0, 218, 221, 5, 67,
4547
+ 0, 0, 219, 221, 3, 16, 8, 0, 220, 218, 1, 0, 0, 0, 220, 219, 1, 0, 0, 0, 221, 222, 1, 0,
4548
+ 0, 0, 222, 220, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 225, 5, 70,
4549
+ 0, 0, 225, 15, 1, 0, 0, 0, 226, 227, 7, 1, 0, 0, 227, 228, 5, 1, 0, 0, 228, 229, 3, 70,
4550
+ 35, 0, 229, 17, 1, 0, 0, 0, 230, 231, 5, 16, 0, 0, 231, 232, 3, 64, 32, 0, 232, 19, 1,
4551
+ 0, 0, 0, 233, 234, 5, 59, 0, 0, 234, 237, 5, 1, 0, 0, 235, 238, 3, 70, 35, 0, 236, 238,
4552
+ 5, 59, 0, 0, 237, 235, 1, 0, 0, 0, 237, 236, 1, 0, 0, 0, 238, 21, 1, 0, 0, 0, 239, 242,
4553
+ 3, 64, 32, 0, 240, 242, 3, 52, 26, 0, 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242,
4554
+ 246, 1, 0, 0, 0, 243, 245, 3, 20, 10, 0, 244, 243, 1, 0, 0, 0, 245, 248, 1, 0, 0, 0, 246,
4555
+ 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 250, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 249,
4556
+ 251, 3, 18, 9, 0, 250, 249, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251, 23, 1, 0, 0, 0, 252,
4557
+ 253, 5, 17, 0, 0, 253, 254, 3, 22, 11, 0, 254, 25, 1, 0, 0, 0, 255, 259, 3, 22, 11, 0,
4558
+ 256, 259, 3, 18, 9, 0, 257, 259, 5, 20, 0, 0, 258, 255, 1, 0, 0, 0, 258, 256, 1, 0, 0,
4559
+ 0, 258, 257, 1, 0, 0, 0, 259, 27, 1, 0, 0, 0, 260, 261, 7, 2, 0, 0, 261, 29, 1, 0, 0, 0,
4560
+ 262, 263, 5, 18, 0, 0, 263, 264, 3, 26, 13, 0, 264, 31, 1, 0, 0, 0, 265, 266, 5, 19, 0,
4561
+ 0, 266, 271, 3, 26, 13, 0, 267, 268, 5, 2, 0, 0, 268, 270, 3, 26, 13, 0, 269, 267, 1,
4562
+ 0, 0, 0, 270, 273, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 33, 1, 0,
4563
+ 0, 0, 273, 271, 1, 0, 0, 0, 274, 275, 5, 18, 0, 0, 275, 276, 3, 26, 13, 0, 276, 277, 5,
4564
+ 19, 0, 0, 277, 282, 3, 26, 13, 0, 278, 279, 5, 2, 0, 0, 279, 281, 3, 26, 13, 0, 280, 278,
4565
+ 1, 0, 0, 0, 281, 284, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 285,
4566
+ 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 285, 286, 5, 1, 0, 0, 286, 287, 5, 67, 0, 0, 287, 290,
4567
+ 5, 69, 0, 0, 288, 291, 5, 67, 0, 0, 289, 291, 3, 36, 18, 0, 290, 288, 1, 0, 0, 0, 290,
4568
+ 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 292, 293, 1, 0, 0, 0, 293,
4569
+ 294, 1, 0, 0, 0, 294, 295, 5, 70, 0, 0, 295, 35, 1, 0, 0, 0, 296, 297, 3, 28, 14, 0, 297,
4570
+ 298, 5, 1, 0, 0, 298, 303, 3, 38, 19, 0, 299, 300, 5, 2, 0, 0, 300, 302, 3, 38, 19, 0,
4571
+ 301, 299, 1, 0, 0, 0, 302, 305, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 303, 304, 1, 0, 0, 0,
4572
+ 304, 37, 1, 0, 0, 0, 305, 303, 1, 0, 0, 0, 306, 307, 7, 3, 0, 0, 307, 39, 1, 0, 0, 0, 308,
4573
+ 309, 3, 44, 22, 0, 309, 310, 5, 67, 0, 0, 310, 313, 5, 69, 0, 0, 311, 314, 5, 67, 0, 0,
4574
+ 312, 314, 3, 42, 21, 0, 313, 311, 1, 0, 0, 0, 313, 312, 1, 0, 0, 0, 314, 315, 1, 0, 0,
4575
+ 0, 315, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 318, 5, 70, 0,
4576
+ 0, 318, 41, 1, 0, 0, 0, 319, 322, 3, 2, 1, 0, 320, 322, 3, 46, 23, 0, 321, 319, 1, 0, 0,
4577
+ 0, 321, 320, 1, 0, 0, 0, 322, 43, 1, 0, 0, 0, 323, 324, 3, 30, 15, 0, 324, 328, 5, 1, 0,
4578
+ 0, 325, 327, 3, 148, 74, 0, 326, 325, 1, 0, 0, 0, 327, 330, 1, 0, 0, 0, 328, 326, 1, 0,
4579
+ 0, 0, 328, 329, 1, 0, 0, 0, 329, 45, 1, 0, 0, 0, 330, 328, 1, 0, 0, 0, 331, 332, 3, 28,
4580
+ 14, 0, 332, 335, 5, 1, 0, 0, 333, 336, 3, 48, 24, 0, 334, 336, 3, 50, 25, 0, 335, 333,
4581
+ 1, 0, 0, 0, 335, 334, 1, 0, 0, 0, 336, 47, 1, 0, 0, 0, 337, 340, 3, 2, 1, 0, 338, 340, 5,
4582
+ 57, 0, 0, 339, 337, 1, 0, 0, 0, 339, 338, 1, 0, 0, 0, 340, 49, 1, 0, 0, 0, 341, 342, 3,
4583
+ 10, 5, 0, 342, 51, 1, 0, 0, 0, 343, 346, 3, 78, 39, 0, 344, 346, 3, 84, 42, 0, 345, 343,
4584
+ 1, 0, 0, 0, 345, 344, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 348, 5, 3, 0, 0, 348, 349,
4585
+ 3, 64, 32, 0, 349, 53, 1, 0, 0, 0, 350, 351, 3, 78, 39, 0, 351, 352, 7, 4, 0, 0, 352, 353,
4586
+ 3, 64, 32, 0, 353, 55, 1, 0, 0, 0, 354, 355, 5, 59, 0, 0, 355, 356, 5, 3, 0, 0, 356, 357,
4587
+ 3, 64, 32, 0, 357, 57, 1, 0, 0, 0, 358, 363, 3, 64, 32, 0, 359, 360, 5, 2, 0, 0, 360, 362,
4588
+ 3, 64, 32, 0, 361, 359, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 363, 364,
4589
+ 1, 0, 0, 0, 364, 370, 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 366, 367, 5, 2, 0, 0, 367, 369,
4590
+ 3, 56, 28, 0, 368, 366, 1, 0, 0, 0, 369, 372, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 370, 371,
4591
+ 1, 0, 0, 0, 371, 382, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 373, 378, 3, 56, 28, 0, 374, 375,
4592
+ 5, 2, 0, 0, 375, 377, 3, 56, 28, 0, 376, 374, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0, 378, 376,
4593
+ 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 379, 382, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 381, 358,
4594
+ 1, 0, 0, 0, 381, 373, 1, 0, 0, 0, 382, 59, 1, 0, 0, 0, 383, 384, 3, 78, 39, 0, 384, 385,
4595
+ 5, 3, 0, 0, 385, 386, 3, 64, 32, 0, 386, 61, 1, 0, 0, 0, 387, 388, 5, 4, 0, 0, 388, 389,
4596
+ 5, 59, 0, 0, 389, 390, 5, 3, 0, 0, 390, 391, 3, 64, 32, 0, 391, 63, 1, 0, 0, 0, 392, 393,
4597
+ 6, 32, -1, 0, 393, 394, 5, 55, 0, 0, 394, 395, 3, 64, 32, 0, 395, 396, 5, 56, 0, 0, 396,
4598
+ 410, 1, 0, 0, 0, 397, 400, 3, 70, 35, 0, 398, 400, 3, 78, 39, 0, 399, 397, 1, 0, 0, 0,
4599
+ 399, 398, 1, 0, 0, 0, 400, 410, 1, 0, 0, 0, 401, 402, 3, 68, 34, 0, 402, 403, 3, 64, 32,
4600
+ 11, 403, 410, 1, 0, 0, 0, 404, 410, 3, 92, 46, 0, 405, 410, 3, 96, 48, 0, 406, 410, 3,
4601
+ 98, 49, 0, 407, 410, 3, 84, 42, 0, 408, 410, 3, 114, 57, 0, 409, 392, 1, 0, 0, 0, 409,
4602
+ 399, 1, 0, 0, 0, 409, 401, 1, 0, 0, 0, 409, 404, 1, 0, 0, 0, 409, 405, 1, 0, 0, 0, 409,
4603
+ 406, 1, 0, 0, 0, 409, 407, 1, 0, 0, 0, 409, 408, 1, 0, 0, 0, 410, 431, 1, 0, 0, 0, 411,
4604
+ 412, 10, 10, 0, 0, 412, 413, 7, 5, 0, 0, 413, 430, 3, 64, 32, 11, 414, 415, 10, 9, 0,
4605
+ 0, 415, 416, 7, 6, 0, 0, 416, 430, 3, 64, 32, 10, 417, 418, 10, 8, 0, 0, 418, 419, 3,
4606
+ 66, 33, 0, 419, 420, 3, 64, 32, 9, 420, 430, 1, 0, 0, 0, 421, 422, 10, 7, 0, 0, 422, 423,
4607
+ 7, 7, 0, 0, 423, 430, 3, 64, 32, 8, 424, 425, 10, 1, 0, 0, 425, 426, 5, 5, 0, 0, 426, 427,
4608
+ 3, 64, 32, 0, 427, 428, 5, 6, 0, 0, 428, 430, 1, 0, 0, 0, 429, 411, 1, 0, 0, 0, 429, 414,
4609
+ 1, 0, 0, 0, 429, 417, 1, 0, 0, 0, 429, 421, 1, 0, 0, 0, 429, 424, 1, 0, 0, 0, 430, 433,
4610
+ 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 65, 1, 0, 0, 0, 433, 431, 1,
4611
+ 0, 0, 0, 434, 435, 7, 8, 0, 0, 435, 67, 1, 0, 0, 0, 436, 437, 7, 9, 0, 0, 437, 69, 1, 0,
4612
+ 0, 0, 438, 440, 5, 45, 0, 0, 439, 438, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 441, 1, 0,
4613
+ 0, 0, 441, 442, 7, 10, 0, 0, 442, 71, 1, 0, 0, 0, 443, 444, 5, 24, 0, 0, 444, 445, 5, 59,
4614
+ 0, 0, 445, 447, 5, 55, 0, 0, 446, 448, 3, 76, 38, 0, 447, 446, 1, 0, 0, 0, 447, 448, 1,
4615
+ 0, 0, 0, 448, 449, 1, 0, 0, 0, 449, 450, 5, 56, 0, 0, 450, 451, 5, 1, 0, 0, 451, 452, 5,
4616
+ 67, 0, 0, 452, 455, 5, 69, 0, 0, 453, 456, 5, 67, 0, 0, 454, 456, 3, 74, 37, 0, 455, 453,
4617
+ 1, 0, 0, 0, 455, 454, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 457, 458,
4618
+ 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 460, 5, 70, 0, 0, 460, 73, 1, 0, 0, 0, 461, 464,
4619
+ 3, 2, 1, 0, 462, 464, 3, 88, 44, 0, 463, 461, 1, 0, 0, 0, 463, 462, 1, 0, 0, 0, 464, 75,
4620
+ 1, 0, 0, 0, 465, 470, 5, 59, 0, 0, 466, 467, 5, 2, 0, 0, 467, 469, 5, 59, 0, 0, 468, 466,
4621
+ 1, 0, 0, 0, 469, 472, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 479,
4622
+ 1, 0, 0, 0, 472, 470, 1, 0, 0, 0, 473, 474, 5, 2, 0, 0, 474, 475, 5, 59, 0, 0, 475, 476,
4623
+ 5, 3, 0, 0, 476, 478, 3, 70, 35, 0, 477, 473, 1, 0, 0, 0, 478, 481, 1, 0, 0, 0, 479, 477,
4624
+ 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 495, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 482, 483,
4625
+ 5, 59, 0, 0, 483, 484, 5, 3, 0, 0, 484, 491, 3, 70, 35, 0, 485, 486, 5, 2, 0, 0, 486, 487,
4626
+ 5, 59, 0, 0, 487, 488, 5, 3, 0, 0, 488, 490, 3, 70, 35, 0, 489, 485, 1, 0, 0, 0, 490, 493,
4627
+ 1, 0, 0, 0, 491, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 495, 1, 0, 0, 0, 493, 491,
4628
+ 1, 0, 0, 0, 494, 465, 1, 0, 0, 0, 494, 482, 1, 0, 0, 0, 495, 77, 1, 0, 0, 0, 496, 500, 5,
4629
+ 59, 0, 0, 497, 499, 3, 82, 41, 0, 498, 497, 1, 0, 0, 0, 499, 502, 1, 0, 0, 0, 500, 498,
4630
+ 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 79, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0, 503, 505, 5,
4631
+ 55, 0, 0, 504, 506, 3, 58, 29, 0, 505, 504, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 507,
4632
+ 1, 0, 0, 0, 507, 510, 5, 56, 0, 0, 508, 510, 3, 82, 41, 0, 509, 503, 1, 0, 0, 0, 509, 508,
4633
+ 1, 0, 0, 0, 510, 81, 1, 0, 0, 0, 511, 512, 5, 7, 0, 0, 512, 518, 5, 59, 0, 0, 513, 514,
4634
+ 5, 5, 0, 0, 514, 515, 3, 64, 32, 0, 515, 516, 5, 6, 0, 0, 516, 518, 1, 0, 0, 0, 517, 511,
4635
+ 1, 0, 0, 0, 517, 513, 1, 0, 0, 0, 518, 83, 1, 0, 0, 0, 519, 521, 3, 86, 43, 0, 520, 519,
4636
+ 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 524, 5, 59, 0, 0, 523, 525,
4637
+ 3, 80, 40, 0, 524, 523, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 524, 1, 0, 0, 0, 526, 527,
4638
+ 1, 0, 0, 0, 527, 85, 1, 0, 0, 0, 528, 530, 5, 44, 0, 0, 529, 528, 1, 0, 0, 0, 529, 530,
4639
+ 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 533, 5, 46, 0, 0, 532, 534, 3, 64, 32, 0, 533, 532,
4640
+ 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, 87, 1, 0, 0, 0, 535, 536, 5, 23, 0, 0, 536, 537,
4641
+ 3, 64, 32, 0, 537, 89, 1, 0, 0, 0, 538, 539, 3, 106, 53, 0, 539, 540, 5, 1, 0, 0, 540,
4642
+ 541, 3, 10, 5, 0, 541, 91, 1, 0, 0, 0, 542, 543, 5, 11, 0, 0, 543, 544, 5, 12, 0, 0, 544,
4643
+ 545, 5, 1, 0, 0, 545, 546, 5, 67, 0, 0, 546, 549, 5, 69, 0, 0, 547, 550, 5, 67, 0, 0, 548,
4644
+ 550, 3, 104, 52, 0, 549, 547, 1, 0, 0, 0, 549, 548, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551,
4645
+ 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 553, 1, 0, 0, 0, 553, 554, 5, 70, 0, 0, 554,
4646
+ 93, 1, 0, 0, 0, 555, 556, 5, 67, 0, 0, 556, 559, 5, 69, 0, 0, 557, 560, 5, 67, 0, 0, 558,
4647
+ 560, 3, 102, 51, 0, 559, 557, 1, 0, 0, 0, 559, 558, 1, 0, 0, 0, 560, 561, 1, 0, 0, 0, 561,
4648
+ 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 564, 5, 70, 0, 0, 564,
4649
+ 95, 1, 0, 0, 0, 565, 566, 5, 11, 0, 0, 566, 570, 5, 13, 0, 0, 567, 568, 5, 55, 0, 0, 568,
4650
+ 569, 5, 59, 0, 0, 569, 571, 5, 56, 0, 0, 570, 567, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571,
4651
+ 572, 1, 0, 0, 0, 572, 573, 5, 1, 0, 0, 573, 574, 3, 94, 47, 0, 574, 97, 1, 0, 0, 0, 575,
4652
+ 576, 5, 11, 0, 0, 576, 577, 5, 14, 0, 0, 577, 578, 5, 1, 0, 0, 578, 579, 5, 67, 0, 0, 579,
4653
+ 583, 5, 69, 0, 0, 580, 584, 5, 67, 0, 0, 581, 584, 3, 104, 52, 0, 582, 584, 3, 90, 45,
4654
+ 0, 583, 580, 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 582, 1, 0, 0, 0, 584, 585, 1, 0, 0,
4655
+ 0, 585, 583, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 588, 5, 70, 0,
4656
+ 0, 588, 99, 1, 0, 0, 0, 589, 590, 5, 67, 0, 0, 590, 593, 5, 69, 0, 0, 591, 594, 5, 67,
4657
+ 0, 0, 592, 594, 3, 104, 52, 0, 593, 591, 1, 0, 0, 0, 593, 592, 1, 0, 0, 0, 594, 595, 1,
4658
+ 0, 0, 0, 595, 593, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 598, 5,
4659
+ 70, 0, 0, 598, 101, 1, 0, 0, 0, 599, 601, 7, 11, 0, 0, 600, 602, 5, 1, 0, 0, 601, 600,
4660
+ 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 609, 1, 0, 0, 0, 603, 610, 3, 58, 29, 0, 604, 605,
4661
+ 5, 55, 0, 0, 605, 606, 3, 58, 29, 0, 606, 607, 5, 56, 0, 0, 607, 610, 1, 0, 0, 0, 608,
4662
+ 610, 3, 100, 50, 0, 609, 603, 1, 0, 0, 0, 609, 604, 1, 0, 0, 0, 609, 608, 1, 0, 0, 0, 610,
4663
+ 626, 1, 0, 0, 0, 611, 612, 5, 27, 0, 0, 612, 617, 5, 59, 0, 0, 613, 614, 5, 2, 0, 0, 614,
4664
+ 616, 5, 59, 0, 0, 615, 613, 1, 0, 0, 0, 616, 619, 1, 0, 0, 0, 617, 615, 1, 0, 0, 0, 617,
4665
+ 618, 1, 0, 0, 0, 618, 620, 1, 0, 0, 0, 619, 617, 1, 0, 0, 0, 620, 621, 5, 28, 0, 0, 621,
4666
+ 622, 3, 64, 32, 0, 622, 623, 5, 1, 0, 0, 623, 624, 3, 94, 47, 0, 624, 626, 1, 0, 0, 0,
4667
+ 625, 599, 1, 0, 0, 0, 625, 611, 1, 0, 0, 0, 626, 103, 1, 0, 0, 0, 627, 631, 3, 106, 53,
4668
+ 0, 628, 630, 5, 63, 0, 0, 629, 628, 1, 0, 0, 0, 630, 633, 1, 0, 0, 0, 631, 629, 1, 0, 0,
4669
+ 0, 631, 632, 1, 0, 0, 0, 632, 634, 1, 0, 0, 0, 633, 631, 1, 0, 0, 0, 634, 635, 5, 1, 0,
4670
+ 0, 635, 636, 3, 108, 54, 0, 636, 105, 1, 0, 0, 0, 637, 638, 7, 12, 0, 0, 638, 107, 1,
4671
+ 0, 0, 0, 639, 649, 3, 100, 50, 0, 640, 645, 3, 64, 32, 0, 641, 642, 5, 2, 0, 0, 642, 644,
4672
+ 3, 64, 32, 0, 643, 641, 1, 0, 0, 0, 644, 647, 1, 0, 0, 0, 645, 643, 1, 0, 0, 0, 645, 646,
4673
+ 1, 0, 0, 0, 646, 649, 1, 0, 0, 0, 647, 645, 1, 0, 0, 0, 648, 639, 1, 0, 0, 0, 648, 640,
4674
+ 1, 0, 0, 0, 649, 109, 1, 0, 0, 0, 650, 653, 5, 59, 0, 0, 651, 654, 5, 60, 0, 0, 652, 654,
4675
+ 3, 64, 32, 0, 653, 651, 1, 0, 0, 0, 653, 652, 1, 0, 0, 0, 654, 657, 1, 0, 0, 0, 655, 657,
4676
+ 5, 59, 0, 0, 656, 650, 1, 0, 0, 0, 656, 655, 1, 0, 0, 0, 657, 111, 1, 0, 0, 0, 658, 662,
4677
+ 5, 15, 0, 0, 659, 661, 3, 110, 55, 0, 660, 659, 1, 0, 0, 0, 661, 664, 1, 0, 0, 0, 662,
4678
+ 660, 1, 0, 0, 0, 662, 663, 1, 0, 0, 0, 663, 113, 1, 0, 0, 0, 664, 662, 1, 0, 0, 0, 665,
4679
+ 676, 5, 5, 0, 0, 666, 671, 3, 64, 32, 0, 667, 668, 5, 2, 0, 0, 668, 670, 3, 64, 32, 0,
4680
+ 669, 667, 1, 0, 0, 0, 670, 673, 1, 0, 0, 0, 671, 669, 1, 0, 0, 0, 671, 672, 1, 0, 0, 0,
4681
+ 672, 675, 1, 0, 0, 0, 673, 671, 1, 0, 0, 0, 674, 666, 1, 0, 0, 0, 675, 678, 1, 0, 0, 0,
4682
+ 676, 674, 1, 0, 0, 0, 676, 677, 1, 0, 0, 0, 677, 679, 1, 0, 0, 0, 678, 676, 1, 0, 0, 0,
4683
+ 679, 680, 5, 6, 0, 0, 680, 115, 1, 0, 0, 0, 681, 684, 5, 20, 0, 0, 682, 685, 5, 59, 0,
4684
+ 0, 683, 685, 3, 64, 32, 0, 684, 682, 1, 0, 0, 0, 684, 683, 1, 0, 0, 0, 685, 117, 1, 0,
4685
+ 0, 0, 686, 687, 5, 25, 0, 0, 687, 689, 5, 59, 0, 0, 688, 690, 3, 120, 60, 0, 689, 688,
4686
+ 1, 0, 0, 0, 689, 690, 1, 0, 0, 0, 690, 713, 1, 0, 0, 0, 691, 692, 5, 26, 0, 0, 692, 693,
4687
+ 5, 59, 0, 0, 693, 694, 5, 25, 0, 0, 694, 696, 5, 47, 0, 0, 695, 697, 3, 120, 60, 0, 696,
4688
+ 695, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 697, 713, 1, 0, 0, 0, 698, 699, 5, 26, 0, 0, 699,
4689
+ 700, 5, 59, 0, 0, 700, 701, 5, 25, 0, 0, 701, 706, 5, 59, 0, 0, 702, 703, 5, 2, 0, 0, 703,
4690
+ 705, 5, 59, 0, 0, 704, 702, 1, 0, 0, 0, 705, 708, 1, 0, 0, 0, 706, 704, 1, 0, 0, 0, 706,
4691
+ 707, 1, 0, 0, 0, 707, 710, 1, 0, 0, 0, 708, 706, 1, 0, 0, 0, 709, 711, 3, 120, 60, 0, 710,
4692
+ 709, 1, 0, 0, 0, 710, 711, 1, 0, 0, 0, 711, 713, 1, 0, 0, 0, 712, 686, 1, 0, 0, 0, 712,
4693
+ 691, 1, 0, 0, 0, 712, 698, 1, 0, 0, 0, 713, 119, 1, 0, 0, 0, 714, 718, 5, 54, 0, 0, 715,
4694
+ 717, 7, 13, 0, 0, 716, 715, 1, 0, 0, 0, 717, 720, 1, 0, 0, 0, 718, 716, 1, 0, 0, 0, 718,
4695
+ 719, 1, 0, 0, 0, 719, 121, 1, 0, 0, 0, 720, 718, 1, 0, 0, 0, 721, 722, 7, 14, 0, 0, 722,
4696
+ 723, 5, 1, 0, 0, 723, 724, 3, 10, 5, 0, 724, 123, 1, 0, 0, 0, 725, 726, 5, 31, 0, 0, 726,
4697
+ 727, 3, 64, 32, 0, 727, 728, 5, 1, 0, 0, 728, 732, 3, 10, 5, 0, 729, 731, 3, 126, 63,
4698
+ 0, 730, 729, 1, 0, 0, 0, 731, 734, 1, 0, 0, 0, 732, 730, 1, 0, 0, 0, 732, 733, 1, 0, 0,
4699
+ 0, 733, 736, 1, 0, 0, 0, 734, 732, 1, 0, 0, 0, 735, 737, 3, 128, 64, 0, 736, 735, 1, 0,
4700
+ 0, 0, 736, 737, 1, 0, 0, 0, 737, 125, 1, 0, 0, 0, 738, 739, 5, 32, 0, 0, 739, 740, 5, 31,
4701
+ 0, 0, 740, 741, 3, 64, 32, 0, 741, 742, 5, 1, 0, 0, 742, 743, 3, 10, 5, 0, 743, 127, 1,
4702
+ 0, 0, 0, 744, 745, 5, 32, 0, 0, 745, 746, 5, 1, 0, 0, 746, 747, 3, 10, 5, 0, 747, 129,
4703
+ 1, 0, 0, 0, 748, 749, 5, 29, 0, 0, 749, 750, 3, 64, 32, 0, 750, 751, 5, 1, 0, 0, 751, 752,
4704
+ 3, 10, 5, 0, 752, 131, 1, 0, 0, 0, 753, 754, 5, 27, 0, 0, 754, 759, 5, 59, 0, 0, 755, 756,
4705
+ 5, 2, 0, 0, 756, 758, 5, 59, 0, 0, 757, 755, 1, 0, 0, 0, 758, 761, 1, 0, 0, 0, 759, 757,
4706
+ 1, 0, 0, 0, 759, 760, 1, 0, 0, 0, 760, 762, 1, 0, 0, 0, 761, 759, 1, 0, 0, 0, 762, 763,
4707
+ 5, 28, 0, 0, 763, 764, 3, 64, 32, 0, 764, 765, 5, 1, 0, 0, 765, 766, 3, 10, 5, 0, 766,
4708
+ 133, 1, 0, 0, 0, 767, 768, 5, 8, 0, 0, 768, 769, 5, 1, 0, 0, 769, 774, 3, 64, 32, 0, 770,
4709
+ 771, 5, 2, 0, 0, 771, 773, 3, 64, 32, 0, 772, 770, 1, 0, 0, 0, 773, 776, 1, 0, 0, 0, 774,
4710
+ 772, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775, 777, 1, 0, 0, 0, 776, 774, 1, 0, 0, 0, 777,
4711
+ 778, 5, 1, 0, 0, 778, 779, 3, 138, 69, 0, 779, 135, 1, 0, 0, 0, 780, 781, 7, 15, 0, 0,
4712
+ 781, 137, 1, 0, 0, 0, 782, 783, 5, 67, 0, 0, 783, 786, 5, 69, 0, 0, 784, 787, 5, 67, 0,
4713
+ 0, 785, 787, 3, 140, 70, 0, 786, 784, 1, 0, 0, 0, 786, 785, 1, 0, 0, 0, 787, 788, 1, 0,
4714
+ 0, 0, 788, 786, 1, 0, 0, 0, 788, 789, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 5, 70,
4715
+ 0, 0, 791, 139, 1, 0, 0, 0, 792, 796, 3, 142, 71, 0, 793, 796, 3, 146, 73, 0, 794, 796,
4716
+ 3, 144, 72, 0, 795, 792, 1, 0, 0, 0, 795, 793, 1, 0, 0, 0, 795, 794, 1, 0, 0, 0, 796, 141,
4717
+ 1, 0, 0, 0, 797, 798, 3, 136, 68, 0, 798, 799, 5, 1, 0, 0, 799, 807, 3, 64, 32, 0, 800,
4718
+ 801, 5, 2, 0, 0, 801, 802, 3, 136, 68, 0, 802, 803, 5, 1, 0, 0, 803, 804, 3, 64, 32, 0,
4719
+ 804, 806, 1, 0, 0, 0, 805, 800, 1, 0, 0, 0, 806, 809, 1, 0, 0, 0, 807, 805, 1, 0, 0, 0,
4720
+ 807, 808, 1, 0, 0, 0, 808, 814, 1, 0, 0, 0, 809, 807, 1, 0, 0, 0, 810, 811, 5, 2, 0, 0,
4721
+ 811, 813, 3, 136, 68, 0, 812, 810, 1, 0, 0, 0, 813, 816, 1, 0, 0, 0, 814, 812, 1, 0, 0,
4722
+ 0, 814, 815, 1, 0, 0, 0, 815, 817, 1, 0, 0, 0, 816, 814, 1, 0, 0, 0, 817, 827, 5, 1, 0,
4723
+ 0, 818, 828, 3, 138, 69, 0, 819, 824, 3, 64, 32, 0, 820, 821, 5, 2, 0, 0, 821, 823, 3,
4724
+ 64, 32, 0, 822, 820, 1, 0, 0, 0, 823, 826, 1, 0, 0, 0, 824, 822, 1, 0, 0, 0, 824, 825,
4725
+ 1, 0, 0, 0, 825, 828, 1, 0, 0, 0, 826, 824, 1, 0, 0, 0, 827, 818, 1, 0, 0, 0, 827, 819,
4726
+ 1, 0, 0, 0, 828, 143, 1, 0, 0, 0, 829, 830, 3, 136, 68, 0, 830, 831, 5, 1, 0, 0, 831, 832,
4727
+ 3, 138, 69, 0, 832, 145, 1, 0, 0, 0, 833, 834, 3, 136, 68, 0, 834, 835, 5, 1, 0, 0, 835,
4728
+ 840, 3, 64, 32, 0, 836, 837, 5, 2, 0, 0, 837, 839, 3, 64, 32, 0, 838, 836, 1, 0, 0, 0,
4729
+ 839, 842, 1, 0, 0, 0, 840, 838, 1, 0, 0, 0, 840, 841, 1, 0, 0, 0, 841, 147, 1, 0, 0, 0,
4730
+ 842, 840, 1, 0, 0, 0, 843, 844, 5, 54, 0, 0, 844, 845, 5, 59, 0, 0, 845, 149, 1, 0, 0,
4731
+ 0, 94, 152, 154, 159, 161, 179, 186, 190, 198, 204, 206, 220, 222, 237, 241, 246,
4732
+ 250, 258, 271, 282, 290, 292, 303, 313, 315, 321, 328, 335, 339, 345, 363, 370,
4733
+ 378, 381, 399, 409, 429, 431, 439, 447, 455, 457, 463, 470, 479, 491, 494, 500,
4734
+ 505, 509, 517, 520, 526, 529, 533, 549, 551, 559, 561, 570, 583, 585, 593, 595,
4735
+ 601, 609, 617, 625, 631, 645, 648, 653, 656, 662, 671, 676, 684, 689, 696, 706,
4736
+ 710, 712, 718, 732, 736, 759, 774, 786, 788, 795, 807, 814, 824, 827, 840
4631
4737
  ];
4632
4738
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
4633
4739
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -6516,6 +6622,14 @@ class Property_exprContext extends antlr.ParserRuleContext {
6516
6622
  property_value_expr() {
6517
6623
  return this.getRuleContext(0, Property_value_exprContext);
6518
6624
  }
6625
+ STRING_VALUE(i) {
6626
+ if (i === undefined) {
6627
+ return this.getTokens(CircuitScriptParser.STRING_VALUE);
6628
+ }
6629
+ else {
6630
+ return this.getToken(CircuitScriptParser.STRING_VALUE, i);
6631
+ }
6632
+ }
6519
6633
  get ruleIndex() {
6520
6634
  return CircuitScriptParser.RULE_property_expr;
6521
6635
  }
@@ -6767,6 +6881,9 @@ class Import_specificContext extends Import_exprContext {
6767
6881
  return this.getToken(CircuitScriptParser.ID, i);
6768
6882
  }
6769
6883
  }
6884
+ import_annotation_expr() {
6885
+ return this.getRuleContext(0, Import_annotation_exprContext);
6886
+ }
6770
6887
  accept(visitor) {
6771
6888
  if (visitor.visitImport_specific) {
6772
6889
  return visitor.visitImport_specific(this);
@@ -6794,6 +6911,9 @@ class Import_all_simpleContext extends Import_exprContext {
6794
6911
  ID() {
6795
6912
  return this.getToken(CircuitScriptParser.ID, 0);
6796
6913
  }
6914
+ import_annotation_expr() {
6915
+ return this.getRuleContext(0, Import_annotation_exprContext);
6916
+ }
6797
6917
  accept(visitor) {
6798
6918
  if (visitor.visitImport_all_simple) {
6799
6919
  return visitor.visitImport_all_simple(this);
@@ -6815,6 +6935,9 @@ class Import_simpleContext extends Import_exprContext {
6815
6935
  ID() {
6816
6936
  return this.getToken(CircuitScriptParser.ID, 0);
6817
6937
  }
6938
+ import_annotation_expr() {
6939
+ return this.getRuleContext(0, Import_annotation_exprContext);
6940
+ }
6818
6941
  accept(visitor) {
6819
6942
  if (visitor.visitImport_simple) {
6820
6943
  return visitor.visitImport_simple(this);
@@ -6825,6 +6948,42 @@ class Import_simpleContext extends Import_exprContext {
6825
6948
  }
6826
6949
  }
6827
6950
  exports.Import_simpleContext = Import_simpleContext;
6951
+ class Import_annotation_exprContext extends antlr.ParserRuleContext {
6952
+ constructor(parent, invokingState) {
6953
+ super(parent, invokingState);
6954
+ }
6955
+ ANNOTATION_START() {
6956
+ return this.getToken(CircuitScriptParser.ANNOTATION_START, 0);
6957
+ }
6958
+ ID(i) {
6959
+ if (i === undefined) {
6960
+ return this.getTokens(CircuitScriptParser.ID);
6961
+ }
6962
+ else {
6963
+ return this.getToken(CircuitScriptParser.ID, i);
6964
+ }
6965
+ }
6966
+ Minus(i) {
6967
+ if (i === undefined) {
6968
+ return this.getTokens(CircuitScriptParser.Minus);
6969
+ }
6970
+ else {
6971
+ return this.getToken(CircuitScriptParser.Minus, i);
6972
+ }
6973
+ }
6974
+ get ruleIndex() {
6975
+ return CircuitScriptParser.RULE_import_annotation_expr;
6976
+ }
6977
+ accept(visitor) {
6978
+ if (visitor.visitImport_annotation_expr) {
6979
+ return visitor.visitImport_annotation_expr(this);
6980
+ }
6981
+ else {
6982
+ return visitor.visitChildren(this);
6983
+ }
6984
+ }
6985
+ }
6986
+ exports.Import_annotation_exprContext = Import_annotation_exprContext;
6828
6987
  class Frame_exprContext extends antlr.ParserRuleContext {
6829
6988
  constructor(parent, invokingState) {
6830
6989
  super(parent, invokingState);