dt-sql-parser 4.5.1-beta.3 → 4.5.2-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/lib/SQLParserBase.d.ts +9 -0
  2. package/dist/lib/SQLParserBase.js +15 -0
  3. package/dist/lib/generic/GenericSqlListener.d.ts +11 -0
  4. package/dist/lib/generic/GenericSqlParser.d.ts +61 -47
  5. package/dist/lib/generic/GenericSqlParser.js +1047 -949
  6. package/dist/lib/generic/GenericSqlVisitor.d.ts +7 -0
  7. package/dist/lib/hive/HiveSqlParser.d.ts +54 -30
  8. package/dist/lib/hive/HiveSqlParser.js +5633 -5467
  9. package/dist/lib/hive/HiveSqlParserListener.d.ts +22 -0
  10. package/dist/lib/hive/HiveSqlParserVisitor.d.ts +14 -0
  11. package/dist/lib/mysql/MySqlParser.d.ts +34 -9
  12. package/dist/lib/mysql/MySqlParser.js +5697 -5550
  13. package/dist/lib/mysql/MySqlParserListener.d.ts +33 -5
  14. package/dist/lib/mysql/MySqlParserVisitor.d.ts +20 -3
  15. package/dist/lib/postgresql/PostgreSqlParser.d.ts +200 -166
  16. package/dist/lib/postgresql/PostgreSqlParser.js +10389 -10136
  17. package/dist/lib/postgresql/PostgreSqlParserListener.d.ts +31 -5
  18. package/dist/lib/postgresql/PostgreSqlParserVisitor.d.ts +19 -3
  19. package/dist/lib/trino/TrinoSqlListener.d.ts +33 -0
  20. package/dist/lib/trino/TrinoSqlParser.d.ts +157 -115
  21. package/dist/lib/trino/TrinoSqlParser.js +4775 -4494
  22. package/dist/lib/trino/TrinoSqlVisitor.d.ts +21 -0
  23. package/dist/parser/common/basicSQL.d.ts +3 -0
  24. package/dist/parser/common/basicSQL.js +47 -1
  25. package/dist/parser/common/entityCollector.d.ts +37 -2
  26. package/dist/parser/common/entityCollector.js +303 -2
  27. package/dist/parser/flink/flinkEntityCollector.d.ts +2 -1
  28. package/dist/parser/flink/flinkEntityCollector.js +4 -0
  29. package/dist/parser/flink/index.js +1 -1
  30. package/dist/parser/generic/genericEntityCollector.d.ts +7 -2
  31. package/dist/parser/generic/genericEntityCollector.js +65 -15
  32. package/dist/parser/generic/index.js +13 -1
  33. package/dist/parser/hive/hiveEntityCollector.d.ts +2 -1
  34. package/dist/parser/hive/hiveEntityCollector.js +5 -0
  35. package/dist/parser/hive/index.js +1 -1
  36. package/dist/parser/impala/impalaEntityCollector.d.ts +2 -1
  37. package/dist/parser/impala/impalaEntityCollector.js +4 -0
  38. package/dist/parser/impala/index.js +1 -1
  39. package/dist/parser/mysql/index.js +15 -1
  40. package/dist/parser/mysql/mysqlEntityCollector.d.ts +3 -1
  41. package/dist/parser/mysql/mysqlEntityCollector.js +24 -0
  42. package/dist/parser/postgresql/index.js +3 -2
  43. package/dist/parser/postgresql/postgreEntityCollector.d.ts +3 -1
  44. package/dist/parser/postgresql/postgreEntityCollector.js +10 -0
  45. package/dist/parser/spark/index.js +1 -1
  46. package/dist/parser/spark/sparkEntityCollector.d.ts +2 -1
  47. package/dist/parser/spark/sparkEntityCollector.js +5 -0
  48. package/dist/parser/trino/index.js +4 -2
  49. package/dist/parser/trino/trinoEntityCollector.d.ts +2 -1
  50. package/dist/parser/trino/trinoEntityCollector.js +5 -0
  51. package/package.json +1 -1
@@ -22,21 +22,21 @@ export class GenericSqlParser extends SQLParserBase {
22
22
  try {
23
23
  this.enterOuterAlt(localContext, 1);
24
24
  {
25
- this.state = 111;
25
+ this.state = 113;
26
26
  this.errorHandler.sync(this);
27
27
  _la = this.tokenStream.LA(1);
28
28
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 276824196) !== 0) || _la === 32 || _la === 49 || ((((_la - 76)) & ~0x1F) === 0 && ((1 << (_la - 76)) & 270337) !== 0)) {
29
29
  {
30
30
  {
31
- this.state = 108;
31
+ this.state = 110;
32
32
  this.statements();
33
33
  }
34
34
  }
35
- this.state = 113;
35
+ this.state = 115;
36
36
  this.errorHandler.sync(this);
37
37
  _la = this.tokenStream.LA(1);
38
38
  }
39
- this.state = 114;
39
+ this.state = 116;
40
40
  this.match(GenericSqlParser.EOF);
41
41
  }
42
42
  }
@@ -61,7 +61,7 @@ export class GenericSqlParser extends SQLParserBase {
61
61
  try {
62
62
  this.enterOuterAlt(localContext, 1);
63
63
  {
64
- this.state = 116;
64
+ this.state = 118;
65
65
  this.singleStatement();
66
66
  }
67
67
  }
@@ -87,14 +87,14 @@ export class GenericSqlParser extends SQLParserBase {
87
87
  try {
88
88
  this.enterOuterAlt(localContext, 1);
89
89
  {
90
- this.state = 118;
91
- this.statement();
92
90
  this.state = 120;
91
+ this.statement();
92
+ this.state = 122;
93
93
  this.errorHandler.sync(this);
94
94
  _la = this.tokenStream.LA(1);
95
95
  if (_la === 108) {
96
96
  {
97
- this.state = 119;
97
+ this.state = 121;
98
98
  this.match(GenericSqlParser.SEMICOLON);
99
99
  }
100
100
  }
@@ -119,7 +119,7 @@ export class GenericSqlParser extends SQLParserBase {
119
119
  let localContext = new StatementContext(this.context, this.state);
120
120
  this.enterRule(localContext, 6, GenericSqlParser.RULE_statement);
121
121
  try {
122
- this.state = 129;
122
+ this.state = 131;
123
123
  this.errorHandler.sync(this);
124
124
  switch (this.tokenStream.LA(1)) {
125
125
  case GenericSqlParser.T__1:
@@ -128,7 +128,7 @@ export class GenericSqlParser extends SQLParserBase {
128
128
  localContext = new StatementDefaultContext(localContext);
129
129
  this.enterOuterAlt(localContext, 1);
130
130
  {
131
- this.state = 122;
131
+ this.state = 124;
132
132
  this.queryStatement();
133
133
  }
134
134
  break;
@@ -136,7 +136,7 @@ export class GenericSqlParser extends SQLParserBase {
136
136
  localContext = new InsertContext(localContext);
137
137
  this.enterOuterAlt(localContext, 2);
138
138
  {
139
- this.state = 123;
139
+ this.state = 125;
140
140
  this.insertStatement();
141
141
  }
142
142
  break;
@@ -144,7 +144,7 @@ export class GenericSqlParser extends SQLParserBase {
144
144
  localContext = new UpdateContext(localContext);
145
145
  this.enterOuterAlt(localContext, 3);
146
146
  {
147
- this.state = 124;
147
+ this.state = 126;
148
148
  this.updateStatement();
149
149
  }
150
150
  break;
@@ -152,7 +152,7 @@ export class GenericSqlParser extends SQLParserBase {
152
152
  localContext = new DeleteContext(localContext);
153
153
  this.enterOuterAlt(localContext, 4);
154
154
  {
155
- this.state = 125;
155
+ this.state = 127;
156
156
  this.deleteStatement();
157
157
  }
158
158
  break;
@@ -160,7 +160,7 @@ export class GenericSqlParser extends SQLParserBase {
160
160
  localContext = new CreateTableContext(localContext);
161
161
  this.enterOuterAlt(localContext, 5);
162
162
  {
163
- this.state = 126;
163
+ this.state = 128;
164
164
  this.createTableStatement();
165
165
  }
166
166
  break;
@@ -168,7 +168,7 @@ export class GenericSqlParser extends SQLParserBase {
168
168
  localContext = new AlterTableContext(localContext);
169
169
  this.enterOuterAlt(localContext, 6);
170
170
  {
171
- this.state = 127;
171
+ this.state = 129;
172
172
  this.alterTableStatement();
173
173
  }
174
174
  break;
@@ -176,7 +176,7 @@ export class GenericSqlParser extends SQLParserBase {
176
176
  localContext = new DropTableContext(localContext);
177
177
  this.enterOuterAlt(localContext, 7);
178
178
  {
179
- this.state = 128;
179
+ this.state = 130;
180
180
  this.dropTableStatement();
181
181
  }
182
182
  break;
@@ -206,16 +206,16 @@ export class GenericSqlParser extends SQLParserBase {
206
206
  try {
207
207
  this.enterOuterAlt(localContext, 1);
208
208
  {
209
- this.state = 132;
209
+ this.state = 134;
210
210
  this.errorHandler.sync(this);
211
211
  _la = this.tokenStream.LA(1);
212
212
  if (_la === 94) {
213
213
  {
214
- this.state = 131;
214
+ this.state = 133;
215
215
  this.withClause();
216
216
  }
217
217
  }
218
- this.state = 134;
218
+ this.state = 136;
219
219
  this.queryNoWith();
220
220
  }
221
221
  }
@@ -241,32 +241,32 @@ export class GenericSqlParser extends SQLParserBase {
241
241
  try {
242
242
  this.enterOuterAlt(localContext, 1);
243
243
  {
244
- this.state = 136;
245
- this.match(GenericSqlParser.KW_WITH);
246
244
  this.state = 138;
245
+ this.match(GenericSqlParser.KW_WITH);
246
+ this.state = 140;
247
247
  this.errorHandler.sync(this);
248
248
  _la = this.tokenStream.LA(1);
249
249
  if (_la === 72) {
250
250
  {
251
- this.state = 137;
251
+ this.state = 139;
252
252
  this.match(GenericSqlParser.KW_RECURSIVE);
253
253
  }
254
254
  }
255
- this.state = 140;
255
+ this.state = 142;
256
256
  this.namedQuery();
257
- this.state = 145;
257
+ this.state = 147;
258
258
  this.errorHandler.sync(this);
259
259
  _la = this.tokenStream.LA(1);
260
260
  while (_la === 1) {
261
261
  {
262
262
  {
263
- this.state = 141;
263
+ this.state = 143;
264
264
  this.match(GenericSqlParser.T__0);
265
- this.state = 142;
265
+ this.state = 144;
266
266
  this.namedQuery();
267
267
  }
268
268
  }
269
- this.state = 147;
269
+ this.state = 149;
270
270
  this.errorHandler.sync(this);
271
271
  _la = this.tokenStream.LA(1);
272
272
  }
@@ -290,18 +290,74 @@ export class GenericSqlParser extends SQLParserBase {
290
290
  namedQuery() {
291
291
  let localContext = new NamedQueryContext(this.context, this.state);
292
292
  this.enterRule(localContext, 12, GenericSqlParser.RULE_namedQuery);
293
+ let _la;
293
294
  try {
294
295
  this.enterOuterAlt(localContext, 1);
295
296
  {
296
- this.state = 148;
297
+ this.state = 150;
297
298
  localContext._name = this.identifier();
298
- this.state = 149;
299
+ this.state = 152;
300
+ this.errorHandler.sync(this);
301
+ _la = this.tokenStream.LA(1);
302
+ if (_la === 2) {
303
+ {
304
+ this.state = 151;
305
+ this.cteColumnList();
306
+ }
307
+ }
308
+ this.state = 154;
299
309
  this.match(GenericSqlParser.KW_AS);
300
- this.state = 150;
310
+ this.state = 155;
301
311
  this.match(GenericSqlParser.T__1);
302
- this.state = 151;
312
+ this.state = 156;
303
313
  this.queryStatement();
304
- this.state = 152;
314
+ this.state = 157;
315
+ this.match(GenericSqlParser.T__2);
316
+ }
317
+ }
318
+ catch (re) {
319
+ if (re instanceof antlr.RecognitionException) {
320
+ localContext.exception = re;
321
+ this.errorHandler.reportError(this, re);
322
+ this.errorHandler.recover(this, re);
323
+ }
324
+ else {
325
+ throw re;
326
+ }
327
+ }
328
+ finally {
329
+ this.exitRule();
330
+ }
331
+ return localContext;
332
+ }
333
+ cteColumnList() {
334
+ let localContext = new CteColumnListContext(this.context, this.state);
335
+ this.enterRule(localContext, 14, GenericSqlParser.RULE_cteColumnList);
336
+ let _la;
337
+ try {
338
+ this.enterOuterAlt(localContext, 1);
339
+ {
340
+ this.state = 159;
341
+ this.match(GenericSqlParser.T__1);
342
+ this.state = 160;
343
+ this.identifier();
344
+ this.state = 165;
345
+ this.errorHandler.sync(this);
346
+ _la = this.tokenStream.LA(1);
347
+ while (_la === 1) {
348
+ {
349
+ {
350
+ this.state = 161;
351
+ this.match(GenericSqlParser.T__0);
352
+ this.state = 162;
353
+ this.identifier();
354
+ }
355
+ }
356
+ this.state = 167;
357
+ this.errorHandler.sync(this);
358
+ _la = this.tokenStream.LA(1);
359
+ }
360
+ this.state = 168;
305
361
  this.match(GenericSqlParser.T__2);
306
362
  }
307
363
  }
@@ -322,20 +378,20 @@ export class GenericSqlParser extends SQLParserBase {
322
378
  }
323
379
  queryNoWith() {
324
380
  let localContext = new QueryNoWithContext(this.context, this.state);
325
- this.enterRule(localContext, 14, GenericSqlParser.RULE_queryNoWith);
381
+ this.enterRule(localContext, 16, GenericSqlParser.RULE_queryNoWith);
326
382
  let _la;
327
383
  try {
328
384
  this.enterOuterAlt(localContext, 1);
329
385
  {
330
- this.state = 154;
386
+ this.state = 170;
331
387
  this.queryTerm();
332
- this.state = 162;
388
+ this.state = 178;
333
389
  this.errorHandler.sync(this);
334
390
  _la = this.tokenStream.LA(1);
335
391
  while (_la === 36 || _la === 52 || _la === 87) {
336
392
  {
337
393
  {
338
- this.state = 155;
394
+ this.state = 171;
339
395
  _la = this.tokenStream.LA(1);
340
396
  if (!(_la === 36 || _la === 52 || _la === 87)) {
341
397
  this.errorHandler.recoverInline(this);
@@ -344,20 +400,20 @@ export class GenericSqlParser extends SQLParserBase {
344
400
  this.errorHandler.reportMatch(this);
345
401
  this.consume();
346
402
  }
347
- this.state = 157;
403
+ this.state = 173;
348
404
  this.errorHandler.sync(this);
349
405
  _la = this.tokenStream.LA(1);
350
406
  if (_la === 6) {
351
407
  {
352
- this.state = 156;
408
+ this.state = 172;
353
409
  this.match(GenericSqlParser.KW_ALL);
354
410
  }
355
411
  }
356
- this.state = 159;
412
+ this.state = 175;
357
413
  this.queryTerm();
358
414
  }
359
415
  }
360
- this.state = 164;
416
+ this.state = 180;
361
417
  this.errorHandler.sync(this);
362
418
  _la = this.tokenStream.LA(1);
363
419
  }
@@ -380,11 +436,11 @@ export class GenericSqlParser extends SQLParserBase {
380
436
  }
381
437
  queryTerm() {
382
438
  let localContext = new QueryTermContext(this.context, this.state);
383
- this.enterRule(localContext, 16, GenericSqlParser.RULE_queryTerm);
439
+ this.enterRule(localContext, 18, GenericSqlParser.RULE_queryTerm);
384
440
  try {
385
441
  this.enterOuterAlt(localContext, 1);
386
442
  {
387
- this.state = 165;
443
+ this.state = 181;
388
444
  this.queryPrimary();
389
445
  }
390
446
  }
@@ -405,26 +461,26 @@ export class GenericSqlParser extends SQLParserBase {
405
461
  }
406
462
  queryPrimary() {
407
463
  let localContext = new QueryPrimaryContext(this.context, this.state);
408
- this.enterRule(localContext, 18, GenericSqlParser.RULE_queryPrimary);
464
+ this.enterRule(localContext, 20, GenericSqlParser.RULE_queryPrimary);
409
465
  try {
410
- this.state = 172;
466
+ this.state = 188;
411
467
  this.errorHandler.sync(this);
412
468
  switch (this.tokenStream.LA(1)) {
413
469
  case GenericSqlParser.KW_SELECT:
414
470
  this.enterOuterAlt(localContext, 1);
415
471
  {
416
- this.state = 167;
472
+ this.state = 183;
417
473
  this.querySpecification();
418
474
  }
419
475
  break;
420
476
  case GenericSqlParser.T__1:
421
477
  this.enterOuterAlt(localContext, 2);
422
478
  {
423
- this.state = 168;
479
+ this.state = 184;
424
480
  this.match(GenericSqlParser.T__1);
425
- this.state = 169;
481
+ this.state = 185;
426
482
  this.queryStatement();
427
- this.state = 170;
483
+ this.state = 186;
428
484
  this.match(GenericSqlParser.T__2);
429
485
  }
430
486
  break;
@@ -449,92 +505,92 @@ export class GenericSqlParser extends SQLParserBase {
449
505
  }
450
506
  querySpecification() {
451
507
  let localContext = new QuerySpecificationContext(this.context, this.state);
452
- this.enterRule(localContext, 20, GenericSqlParser.RULE_querySpecification);
508
+ this.enterRule(localContext, 22, GenericSqlParser.RULE_querySpecification);
453
509
  let _la;
454
510
  try {
455
511
  this.enterOuterAlt(localContext, 1);
456
512
  {
457
- this.state = 174;
513
+ this.state = 190;
458
514
  this.match(GenericSqlParser.KW_SELECT);
459
- this.state = 176;
515
+ this.state = 192;
460
516
  this.errorHandler.sync(this);
461
- switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context)) {
517
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 11, this.context)) {
462
518
  case 1:
463
519
  {
464
- this.state = 175;
520
+ this.state = 191;
465
521
  this.setQuantifier();
466
522
  }
467
523
  break;
468
524
  }
469
- this.state = 178;
525
+ this.state = 194;
470
526
  this.selectItem();
471
- this.state = 183;
527
+ this.state = 199;
472
528
  this.errorHandler.sync(this);
473
529
  _la = this.tokenStream.LA(1);
474
530
  while (_la === 1) {
475
531
  {
476
532
  {
477
- this.state = 179;
533
+ this.state = 195;
478
534
  this.match(GenericSqlParser.T__0);
479
- this.state = 180;
535
+ this.state = 196;
480
536
  this.selectItem();
481
537
  }
482
538
  }
483
- this.state = 185;
539
+ this.state = 201;
484
540
  this.errorHandler.sync(this);
485
541
  _la = this.tokenStream.LA(1);
486
542
  }
487
- this.state = 187;
543
+ this.state = 203;
488
544
  this.errorHandler.sync(this);
489
545
  _la = this.tokenStream.LA(1);
490
546
  if (_la === 42) {
491
547
  {
492
- this.state = 186;
548
+ this.state = 202;
493
549
  this.fromClause();
494
550
  }
495
551
  }
496
- this.state = 190;
552
+ this.state = 206;
497
553
  this.errorHandler.sync(this);
498
554
  _la = this.tokenStream.LA(1);
499
555
  if (_la === 93) {
500
556
  {
501
- this.state = 189;
557
+ this.state = 205;
502
558
  this.whereClause();
503
559
  }
504
560
  }
505
- this.state = 193;
561
+ this.state = 209;
506
562
  this.errorHandler.sync(this);
507
563
  _la = this.tokenStream.LA(1);
508
564
  if (_la === 44) {
509
565
  {
510
- this.state = 192;
566
+ this.state = 208;
511
567
  this.groupByClause();
512
568
  }
513
569
  }
514
- this.state = 196;
570
+ this.state = 212;
515
571
  this.errorHandler.sync(this);
516
572
  _la = this.tokenStream.LA(1);
517
573
  if (_la === 45) {
518
574
  {
519
- this.state = 195;
575
+ this.state = 211;
520
576
  this.havingClause();
521
577
  }
522
578
  }
523
- this.state = 199;
579
+ this.state = 215;
524
580
  this.errorHandler.sync(this);
525
581
  _la = this.tokenStream.LA(1);
526
582
  if (_la === 69) {
527
583
  {
528
- this.state = 198;
584
+ this.state = 214;
529
585
  this.orderByClause();
530
586
  }
531
587
  }
532
- this.state = 202;
588
+ this.state = 218;
533
589
  this.errorHandler.sync(this);
534
590
  _la = this.tokenStream.LA(1);
535
591
  if (_la === 60) {
536
592
  {
537
- this.state = 201;
593
+ this.state = 217;
538
594
  this.limitClause();
539
595
  }
540
596
  }
@@ -557,12 +613,12 @@ export class GenericSqlParser extends SQLParserBase {
557
613
  }
558
614
  setQuantifier() {
559
615
  let localContext = new SetQuantifierContext(this.context, this.state);
560
- this.enterRule(localContext, 22, GenericSqlParser.RULE_setQuantifier);
616
+ this.enterRule(localContext, 24, GenericSqlParser.RULE_setQuantifier);
561
617
  let _la;
562
618
  try {
563
619
  this.enterOuterAlt(localContext, 1);
564
620
  {
565
- this.state = 204;
621
+ this.state = 220;
566
622
  _la = this.tokenStream.LA(1);
567
623
  if (!(_la === 6 || _la === 30)) {
568
624
  this.errorHandler.recoverInline(this);
@@ -590,33 +646,33 @@ export class GenericSqlParser extends SQLParserBase {
590
646
  }
591
647
  selectItem() {
592
648
  let localContext = new SelectItemContext(this.context, this.state);
593
- this.enterRule(localContext, 24, GenericSqlParser.RULE_selectItem);
649
+ this.enterRule(localContext, 26, GenericSqlParser.RULE_selectItem);
594
650
  let _la;
595
651
  try {
596
- this.state = 218;
652
+ this.state = 234;
597
653
  this.errorHandler.sync(this);
598
- switch (this.interpreter.adaptivePredict(this.tokenStream, 19, this.context)) {
654
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 21, this.context)) {
599
655
  case 1:
600
656
  this.enterOuterAlt(localContext, 1);
601
657
  {
602
- this.state = 206;
658
+ this.state = 222;
603
659
  this.expression();
604
- this.state = 211;
660
+ this.state = 227;
605
661
  this.errorHandler.sync(this);
606
- switch (this.interpreter.adaptivePredict(this.tokenStream, 18, this.context)) {
662
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 20, this.context)) {
607
663
  case 1:
608
664
  {
609
- this.state = 208;
665
+ this.state = 224;
610
666
  this.errorHandler.sync(this);
611
667
  _la = this.tokenStream.LA(1);
612
668
  if (_la === 9) {
613
669
  {
614
- this.state = 207;
670
+ this.state = 223;
615
671
  this.match(GenericSqlParser.KW_AS);
616
672
  }
617
673
  }
618
- this.state = 210;
619
- this.identifier();
674
+ this.state = 226;
675
+ localContext._alias = this.identifier();
620
676
  }
621
677
  break;
622
678
  }
@@ -625,18 +681,18 @@ export class GenericSqlParser extends SQLParserBase {
625
681
  case 2:
626
682
  this.enterOuterAlt(localContext, 2);
627
683
  {
628
- this.state = 213;
684
+ this.state = 229;
629
685
  this.qualifiedName();
630
- this.state = 214;
686
+ this.state = 230;
631
687
  this.match(GenericSqlParser.T__3);
632
- this.state = 215;
688
+ this.state = 231;
633
689
  this.match(GenericSqlParser.ASTERISK);
634
690
  }
635
691
  break;
636
692
  case 3:
637
693
  this.enterOuterAlt(localContext, 3);
638
694
  {
639
- this.state = 217;
695
+ this.state = 233;
640
696
  this.match(GenericSqlParser.ASTERISK);
641
697
  }
642
698
  break;
@@ -659,28 +715,28 @@ export class GenericSqlParser extends SQLParserBase {
659
715
  }
660
716
  fromClause() {
661
717
  let localContext = new FromClauseContext(this.context, this.state);
662
- this.enterRule(localContext, 26, GenericSqlParser.RULE_fromClause);
718
+ this.enterRule(localContext, 28, GenericSqlParser.RULE_fromClause);
663
719
  let _la;
664
720
  try {
665
721
  this.enterOuterAlt(localContext, 1);
666
722
  {
667
- this.state = 220;
723
+ this.state = 236;
668
724
  this.match(GenericSqlParser.KW_FROM);
669
- this.state = 221;
725
+ this.state = 237;
670
726
  this.relation(0);
671
- this.state = 226;
727
+ this.state = 242;
672
728
  this.errorHandler.sync(this);
673
729
  _la = this.tokenStream.LA(1);
674
730
  while (_la === 1) {
675
731
  {
676
732
  {
677
- this.state = 222;
733
+ this.state = 238;
678
734
  this.match(GenericSqlParser.T__0);
679
- this.state = 223;
735
+ this.state = 239;
680
736
  this.relation(0);
681
737
  }
682
738
  }
683
- this.state = 228;
739
+ this.state = 244;
684
740
  this.errorHandler.sync(this);
685
741
  _la = this.tokenStream.LA(1);
686
742
  }
@@ -709,8 +765,8 @@ export class GenericSqlParser extends SQLParserBase {
709
765
  let parentState = this.state;
710
766
  let localContext = new RelationContext(this.context, parentState);
711
767
  let previousContext = localContext;
712
- let _startState = 28;
713
- this.enterRecursionRule(localContext, 28, GenericSqlParser.RULE_relation, _p);
768
+ let _startState = 30;
769
+ this.enterRecursionRule(localContext, 30, GenericSqlParser.RULE_relation, _p);
714
770
  try {
715
771
  let alternative;
716
772
  this.enterOuterAlt(localContext, 1);
@@ -719,13 +775,13 @@ export class GenericSqlParser extends SQLParserBase {
719
775
  localContext = new SimpleRelationContext(localContext);
720
776
  this.context = localContext;
721
777
  previousContext = localContext;
722
- this.state = 230;
778
+ this.state = 246;
723
779
  this.aliasedRelation();
724
780
  }
725
781
  this.context.stop = this.tokenStream.LT(-1);
726
- this.state = 241;
782
+ this.state = 257;
727
783
  this.errorHandler.sync(this);
728
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 21, this.context);
784
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 23, this.context);
729
785
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
730
786
  if (alternative === 1) {
731
787
  if (this._parseListeners != null) {
@@ -737,26 +793,26 @@ export class GenericSqlParser extends SQLParserBase {
737
793
  localContext = new JoinRelationContext(new RelationContext(parentContext, parentState));
738
794
  localContext._left = previousContext;
739
795
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_relation);
740
- this.state = 232;
796
+ this.state = 248;
741
797
  if (!(this.precpred(this.context, 2))) {
742
798
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
743
799
  }
744
- this.state = 233;
800
+ this.state = 249;
745
801
  this.joinType();
746
- this.state = 234;
802
+ this.state = 250;
747
803
  this.match(GenericSqlParser.KW_JOIN);
748
- this.state = 235;
804
+ this.state = 251;
749
805
  localContext._right = this.relation(0);
750
- this.state = 236;
806
+ this.state = 252;
751
807
  this.match(GenericSqlParser.KW_ON);
752
- this.state = 237;
808
+ this.state = 253;
753
809
  localContext._condition = this.expression();
754
810
  }
755
811
  }
756
812
  }
757
- this.state = 243;
813
+ this.state = 259;
758
814
  this.errorHandler.sync(this);
759
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 21, this.context);
815
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 23, this.context);
760
816
  }
761
817
  }
762
818
  }
@@ -777,22 +833,22 @@ export class GenericSqlParser extends SQLParserBase {
777
833
  }
778
834
  joinType() {
779
835
  let localContext = new JoinTypeContext(this.context, this.state);
780
- this.enterRule(localContext, 30, GenericSqlParser.RULE_joinType);
836
+ this.enterRule(localContext, 32, GenericSqlParser.RULE_joinType);
781
837
  let _la;
782
838
  try {
783
- this.state = 260;
839
+ this.state = 276;
784
840
  this.errorHandler.sync(this);
785
841
  switch (this.tokenStream.LA(1)) {
786
842
  case GenericSqlParser.KW_INNER:
787
843
  case GenericSqlParser.KW_JOIN:
788
844
  this.enterOuterAlt(localContext, 1);
789
845
  {
790
- this.state = 245;
846
+ this.state = 261;
791
847
  this.errorHandler.sync(this);
792
848
  _la = this.tokenStream.LA(1);
793
849
  if (_la === 48) {
794
850
  {
795
- this.state = 244;
851
+ this.state = 260;
796
852
  this.match(GenericSqlParser.KW_INNER);
797
853
  }
798
854
  }
@@ -801,14 +857,14 @@ export class GenericSqlParser extends SQLParserBase {
801
857
  case GenericSqlParser.KW_LEFT:
802
858
  this.enterOuterAlt(localContext, 2);
803
859
  {
804
- this.state = 247;
860
+ this.state = 263;
805
861
  this.match(GenericSqlParser.KW_LEFT);
806
- this.state = 249;
862
+ this.state = 265;
807
863
  this.errorHandler.sync(this);
808
864
  _la = this.tokenStream.LA(1);
809
865
  if (_la === 70) {
810
866
  {
811
- this.state = 248;
867
+ this.state = 264;
812
868
  this.match(GenericSqlParser.KW_OUTER);
813
869
  }
814
870
  }
@@ -817,14 +873,14 @@ export class GenericSqlParser extends SQLParserBase {
817
873
  case GenericSqlParser.KW_RIGHT:
818
874
  this.enterOuterAlt(localContext, 3);
819
875
  {
820
- this.state = 251;
876
+ this.state = 267;
821
877
  this.match(GenericSqlParser.KW_RIGHT);
822
- this.state = 253;
878
+ this.state = 269;
823
879
  this.errorHandler.sync(this);
824
880
  _la = this.tokenStream.LA(1);
825
881
  if (_la === 70) {
826
882
  {
827
- this.state = 252;
883
+ this.state = 268;
828
884
  this.match(GenericSqlParser.KW_OUTER);
829
885
  }
830
886
  }
@@ -833,14 +889,14 @@ export class GenericSqlParser extends SQLParserBase {
833
889
  case GenericSqlParser.KW_FULL:
834
890
  this.enterOuterAlt(localContext, 4);
835
891
  {
836
- this.state = 255;
892
+ this.state = 271;
837
893
  this.match(GenericSqlParser.KW_FULL);
838
- this.state = 257;
894
+ this.state = 273;
839
895
  this.errorHandler.sync(this);
840
896
  _la = this.tokenStream.LA(1);
841
897
  if (_la === 70) {
842
898
  {
843
- this.state = 256;
899
+ this.state = 272;
844
900
  this.match(GenericSqlParser.KW_OUTER);
845
901
  }
846
902
  }
@@ -849,7 +905,7 @@ export class GenericSqlParser extends SQLParserBase {
849
905
  case GenericSqlParser.KW_CROSS:
850
906
  this.enterOuterAlt(localContext, 5);
851
907
  {
852
- this.state = 259;
908
+ this.state = 275;
853
909
  this.match(GenericSqlParser.KW_CROSS);
854
910
  }
855
911
  break;
@@ -874,29 +930,29 @@ export class GenericSqlParser extends SQLParserBase {
874
930
  }
875
931
  aliasedRelation() {
876
932
  let localContext = new AliasedRelationContext(this.context, this.state);
877
- this.enterRule(localContext, 32, GenericSqlParser.RULE_aliasedRelation);
933
+ this.enterRule(localContext, 34, GenericSqlParser.RULE_aliasedRelation);
878
934
  let _la;
879
935
  try {
880
936
  this.enterOuterAlt(localContext, 1);
881
937
  {
882
- this.state = 262;
938
+ this.state = 278;
883
939
  this.relationPrimary();
884
- this.state = 267;
940
+ this.state = 283;
885
941
  this.errorHandler.sync(this);
886
- switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
942
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
887
943
  case 1:
888
944
  {
889
- this.state = 264;
945
+ this.state = 280;
890
946
  this.errorHandler.sync(this);
891
947
  _la = this.tokenStream.LA(1);
892
948
  if (_la === 9) {
893
949
  {
894
- this.state = 263;
950
+ this.state = 279;
895
951
  this.match(GenericSqlParser.KW_AS);
896
952
  }
897
953
  }
898
- this.state = 266;
899
- this.identifier();
954
+ this.state = 282;
955
+ localContext._alias = this.identifier();
900
956
  }
901
957
  break;
902
958
  }
@@ -919,9 +975,9 @@ export class GenericSqlParser extends SQLParserBase {
919
975
  }
920
976
  relationPrimary() {
921
977
  let localContext = new RelationPrimaryContext(this.context, this.state);
922
- this.enterRule(localContext, 34, GenericSqlParser.RULE_relationPrimary);
978
+ this.enterRule(localContext, 36, GenericSqlParser.RULE_relationPrimary);
923
979
  try {
924
- this.state = 274;
980
+ this.state = 290;
925
981
  this.errorHandler.sync(this);
926
982
  switch (this.tokenStream.LA(1)) {
927
983
  case GenericSqlParser.KW_ADD:
@@ -974,7 +1030,7 @@ export class GenericSqlParser extends SQLParserBase {
974
1030
  localContext = new TableNameRelationContext(localContext);
975
1031
  this.enterOuterAlt(localContext, 1);
976
1032
  {
977
- this.state = 269;
1033
+ this.state = 285;
978
1034
  this.tableName();
979
1035
  }
980
1036
  break;
@@ -982,11 +1038,11 @@ export class GenericSqlParser extends SQLParserBase {
982
1038
  localContext = new SubqueryRelationContext(localContext);
983
1039
  this.enterOuterAlt(localContext, 2);
984
1040
  {
985
- this.state = 270;
1041
+ this.state = 286;
986
1042
  this.match(GenericSqlParser.T__1);
987
- this.state = 271;
1043
+ this.state = 287;
988
1044
  this.queryStatement();
989
- this.state = 272;
1045
+ this.state = 288;
990
1046
  this.match(GenericSqlParser.T__2);
991
1047
  }
992
1048
  break;
@@ -1011,13 +1067,13 @@ export class GenericSqlParser extends SQLParserBase {
1011
1067
  }
1012
1068
  whereClause() {
1013
1069
  let localContext = new WhereClauseContext(this.context, this.state);
1014
- this.enterRule(localContext, 36, GenericSqlParser.RULE_whereClause);
1070
+ this.enterRule(localContext, 38, GenericSqlParser.RULE_whereClause);
1015
1071
  try {
1016
1072
  this.enterOuterAlt(localContext, 1);
1017
1073
  {
1018
- this.state = 276;
1074
+ this.state = 292;
1019
1075
  this.match(GenericSqlParser.KW_WHERE);
1020
- this.state = 277;
1076
+ this.state = 293;
1021
1077
  this.expression();
1022
1078
  }
1023
1079
  }
@@ -1038,40 +1094,40 @@ export class GenericSqlParser extends SQLParserBase {
1038
1094
  }
1039
1095
  groupByClause() {
1040
1096
  let localContext = new GroupByClauseContext(this.context, this.state);
1041
- this.enterRule(localContext, 38, GenericSqlParser.RULE_groupByClause);
1097
+ this.enterRule(localContext, 40, GenericSqlParser.RULE_groupByClause);
1042
1098
  let _la;
1043
1099
  try {
1044
1100
  this.enterOuterAlt(localContext, 1);
1045
1101
  {
1046
- this.state = 279;
1102
+ this.state = 295;
1047
1103
  this.match(GenericSqlParser.KW_GROUP);
1048
- this.state = 280;
1104
+ this.state = 296;
1049
1105
  this.match(GenericSqlParser.KW_BY);
1050
- this.state = 282;
1106
+ this.state = 298;
1051
1107
  this.errorHandler.sync(this);
1052
- switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1108
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1053
1109
  case 1:
1054
1110
  {
1055
- this.state = 281;
1111
+ this.state = 297;
1056
1112
  this.setQuantifier();
1057
1113
  }
1058
1114
  break;
1059
1115
  }
1060
- this.state = 284;
1116
+ this.state = 300;
1061
1117
  this.expression();
1062
- this.state = 289;
1118
+ this.state = 305;
1063
1119
  this.errorHandler.sync(this);
1064
1120
  _la = this.tokenStream.LA(1);
1065
1121
  while (_la === 1) {
1066
1122
  {
1067
1123
  {
1068
- this.state = 285;
1124
+ this.state = 301;
1069
1125
  this.match(GenericSqlParser.T__0);
1070
- this.state = 286;
1126
+ this.state = 302;
1071
1127
  this.expression();
1072
1128
  }
1073
1129
  }
1074
- this.state = 291;
1130
+ this.state = 307;
1075
1131
  this.errorHandler.sync(this);
1076
1132
  _la = this.tokenStream.LA(1);
1077
1133
  }
@@ -1094,13 +1150,13 @@ export class GenericSqlParser extends SQLParserBase {
1094
1150
  }
1095
1151
  havingClause() {
1096
1152
  let localContext = new HavingClauseContext(this.context, this.state);
1097
- this.enterRule(localContext, 40, GenericSqlParser.RULE_havingClause);
1153
+ this.enterRule(localContext, 42, GenericSqlParser.RULE_havingClause);
1098
1154
  try {
1099
1155
  this.enterOuterAlt(localContext, 1);
1100
1156
  {
1101
- this.state = 292;
1157
+ this.state = 308;
1102
1158
  this.match(GenericSqlParser.KW_HAVING);
1103
- this.state = 293;
1159
+ this.state = 309;
1104
1160
  this.expression();
1105
1161
  }
1106
1162
  }
@@ -1121,30 +1177,30 @@ export class GenericSqlParser extends SQLParserBase {
1121
1177
  }
1122
1178
  orderByClause() {
1123
1179
  let localContext = new OrderByClauseContext(this.context, this.state);
1124
- this.enterRule(localContext, 42, GenericSqlParser.RULE_orderByClause);
1180
+ this.enterRule(localContext, 44, GenericSqlParser.RULE_orderByClause);
1125
1181
  let _la;
1126
1182
  try {
1127
1183
  this.enterOuterAlt(localContext, 1);
1128
1184
  {
1129
- this.state = 295;
1185
+ this.state = 311;
1130
1186
  this.match(GenericSqlParser.KW_ORDER);
1131
- this.state = 296;
1187
+ this.state = 312;
1132
1188
  this.match(GenericSqlParser.KW_BY);
1133
- this.state = 297;
1189
+ this.state = 313;
1134
1190
  this.sortItem();
1135
- this.state = 302;
1191
+ this.state = 318;
1136
1192
  this.errorHandler.sync(this);
1137
1193
  _la = this.tokenStream.LA(1);
1138
1194
  while (_la === 1) {
1139
1195
  {
1140
1196
  {
1141
- this.state = 298;
1197
+ this.state = 314;
1142
1198
  this.match(GenericSqlParser.T__0);
1143
- this.state = 299;
1199
+ this.state = 315;
1144
1200
  this.sortItem();
1145
1201
  }
1146
1202
  }
1147
- this.state = 304;
1203
+ this.state = 320;
1148
1204
  this.errorHandler.sync(this);
1149
1205
  _la = this.tokenStream.LA(1);
1150
1206
  }
@@ -1167,19 +1223,19 @@ export class GenericSqlParser extends SQLParserBase {
1167
1223
  }
1168
1224
  sortItem() {
1169
1225
  let localContext = new SortItemContext(this.context, this.state);
1170
- this.enterRule(localContext, 44, GenericSqlParser.RULE_sortItem);
1226
+ this.enterRule(localContext, 46, GenericSqlParser.RULE_sortItem);
1171
1227
  let _la;
1172
1228
  try {
1173
1229
  this.enterOuterAlt(localContext, 1);
1174
1230
  {
1175
- this.state = 305;
1231
+ this.state = 321;
1176
1232
  this.expression();
1177
- this.state = 307;
1233
+ this.state = 323;
1178
1234
  this.errorHandler.sync(this);
1179
1235
  _la = this.tokenStream.LA(1);
1180
1236
  if (_la === 10 || _la === 29) {
1181
1237
  {
1182
- this.state = 306;
1238
+ this.state = 322;
1183
1239
  localContext._ordering = this.tokenStream.LT(1);
1184
1240
  _la = this.tokenStream.LA(1);
1185
1241
  if (!(_la === 10 || _la === 29)) {
@@ -1191,14 +1247,14 @@ export class GenericSqlParser extends SQLParserBase {
1191
1247
  }
1192
1248
  }
1193
1249
  }
1194
- this.state = 311;
1250
+ this.state = 327;
1195
1251
  this.errorHandler.sync(this);
1196
1252
  _la = this.tokenStream.LA(1);
1197
1253
  if (_la === 64) {
1198
1254
  {
1199
- this.state = 309;
1255
+ this.state = 325;
1200
1256
  this.match(GenericSqlParser.KW_NULLS);
1201
- this.state = 310;
1257
+ this.state = 326;
1202
1258
  localContext._nullOrdering = this.tokenStream.LT(1);
1203
1259
  _la = this.tokenStream.LA(1);
1204
1260
  if (!(_la === 39 || _la === 57)) {
@@ -1229,23 +1285,23 @@ export class GenericSqlParser extends SQLParserBase {
1229
1285
  }
1230
1286
  limitClause() {
1231
1287
  let localContext = new LimitClauseContext(this.context, this.state);
1232
- this.enterRule(localContext, 46, GenericSqlParser.RULE_limitClause);
1288
+ this.enterRule(localContext, 48, GenericSqlParser.RULE_limitClause);
1233
1289
  let _la;
1234
1290
  try {
1235
1291
  this.enterOuterAlt(localContext, 1);
1236
1292
  {
1237
- this.state = 313;
1293
+ this.state = 329;
1238
1294
  this.match(GenericSqlParser.KW_LIMIT);
1239
- this.state = 314;
1295
+ this.state = 330;
1240
1296
  localContext._limit = this.expression();
1241
- this.state = 317;
1297
+ this.state = 333;
1242
1298
  this.errorHandler.sync(this);
1243
1299
  _la = this.tokenStream.LA(1);
1244
1300
  if (_la === 66) {
1245
1301
  {
1246
- this.state = 315;
1302
+ this.state = 331;
1247
1303
  this.match(GenericSqlParser.KW_OFFSET);
1248
- this.state = 316;
1304
+ this.state = 332;
1249
1305
  localContext._offset = this.expression();
1250
1306
  }
1251
1307
  }
@@ -1268,27 +1324,27 @@ export class GenericSqlParser extends SQLParserBase {
1268
1324
  }
1269
1325
  insertStatement() {
1270
1326
  let localContext = new InsertStatementContext(this.context, this.state);
1271
- this.enterRule(localContext, 48, GenericSqlParser.RULE_insertStatement);
1327
+ this.enterRule(localContext, 50, GenericSqlParser.RULE_insertStatement);
1272
1328
  try {
1273
1329
  this.enterOuterAlt(localContext, 1);
1274
1330
  {
1275
- this.state = 319;
1331
+ this.state = 335;
1276
1332
  this.match(GenericSqlParser.KW_INSERT);
1277
- this.state = 320;
1333
+ this.state = 336;
1278
1334
  this.match(GenericSqlParser.KW_INTO);
1279
- this.state = 321;
1335
+ this.state = 337;
1280
1336
  this.tableName();
1281
- this.state = 323;
1337
+ this.state = 339;
1282
1338
  this.errorHandler.sync(this);
1283
- switch (this.interpreter.adaptivePredict(this.tokenStream, 36, this.context)) {
1339
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 38, this.context)) {
1284
1340
  case 1:
1285
1341
  {
1286
- this.state = 322;
1342
+ this.state = 338;
1287
1343
  this.columnList();
1288
1344
  }
1289
1345
  break;
1290
1346
  }
1291
- this.state = 325;
1347
+ this.state = 341;
1292
1348
  this.queryStatement();
1293
1349
  }
1294
1350
  }
@@ -1309,32 +1365,32 @@ export class GenericSqlParser extends SQLParserBase {
1309
1365
  }
1310
1366
  columnList() {
1311
1367
  let localContext = new ColumnListContext(this.context, this.state);
1312
- this.enterRule(localContext, 50, GenericSqlParser.RULE_columnList);
1368
+ this.enterRule(localContext, 52, GenericSqlParser.RULE_columnList);
1313
1369
  let _la;
1314
1370
  try {
1315
1371
  this.enterOuterAlt(localContext, 1);
1316
1372
  {
1317
- this.state = 327;
1373
+ this.state = 343;
1318
1374
  this.match(GenericSqlParser.T__1);
1319
- this.state = 328;
1375
+ this.state = 344;
1320
1376
  this.columnRef();
1321
- this.state = 333;
1377
+ this.state = 349;
1322
1378
  this.errorHandler.sync(this);
1323
1379
  _la = this.tokenStream.LA(1);
1324
1380
  while (_la === 1) {
1325
1381
  {
1326
1382
  {
1327
- this.state = 329;
1383
+ this.state = 345;
1328
1384
  this.match(GenericSqlParser.T__0);
1329
- this.state = 330;
1385
+ this.state = 346;
1330
1386
  this.columnRef();
1331
1387
  }
1332
1388
  }
1333
- this.state = 335;
1389
+ this.state = 351;
1334
1390
  this.errorHandler.sync(this);
1335
1391
  _la = this.tokenStream.LA(1);
1336
1392
  }
1337
- this.state = 336;
1393
+ this.state = 352;
1338
1394
  this.match(GenericSqlParser.T__2);
1339
1395
  }
1340
1396
  }
@@ -1355,41 +1411,41 @@ export class GenericSqlParser extends SQLParserBase {
1355
1411
  }
1356
1412
  updateStatement() {
1357
1413
  let localContext = new UpdateStatementContext(this.context, this.state);
1358
- this.enterRule(localContext, 52, GenericSqlParser.RULE_updateStatement);
1414
+ this.enterRule(localContext, 54, GenericSqlParser.RULE_updateStatement);
1359
1415
  let _la;
1360
1416
  try {
1361
1417
  this.enterOuterAlt(localContext, 1);
1362
1418
  {
1363
- this.state = 338;
1419
+ this.state = 354;
1364
1420
  this.match(GenericSqlParser.KW_UPDATE);
1365
- this.state = 339;
1421
+ this.state = 355;
1366
1422
  this.tableName();
1367
- this.state = 340;
1423
+ this.state = 356;
1368
1424
  this.match(GenericSqlParser.KW_SET);
1369
- this.state = 341;
1425
+ this.state = 357;
1370
1426
  this.updateAssignment();
1371
- this.state = 346;
1427
+ this.state = 362;
1372
1428
  this.errorHandler.sync(this);
1373
1429
  _la = this.tokenStream.LA(1);
1374
1430
  while (_la === 1) {
1375
1431
  {
1376
1432
  {
1377
- this.state = 342;
1433
+ this.state = 358;
1378
1434
  this.match(GenericSqlParser.T__0);
1379
- this.state = 343;
1435
+ this.state = 359;
1380
1436
  this.updateAssignment();
1381
1437
  }
1382
1438
  }
1383
- this.state = 348;
1439
+ this.state = 364;
1384
1440
  this.errorHandler.sync(this);
1385
1441
  _la = this.tokenStream.LA(1);
1386
1442
  }
1387
- this.state = 350;
1443
+ this.state = 366;
1388
1444
  this.errorHandler.sync(this);
1389
1445
  _la = this.tokenStream.LA(1);
1390
1446
  if (_la === 93) {
1391
1447
  {
1392
- this.state = 349;
1448
+ this.state = 365;
1393
1449
  this.whereClause();
1394
1450
  }
1395
1451
  }
@@ -1412,15 +1468,15 @@ export class GenericSqlParser extends SQLParserBase {
1412
1468
  }
1413
1469
  updateAssignment() {
1414
1470
  let localContext = new UpdateAssignmentContext(this.context, this.state);
1415
- this.enterRule(localContext, 54, GenericSqlParser.RULE_updateAssignment);
1471
+ this.enterRule(localContext, 56, GenericSqlParser.RULE_updateAssignment);
1416
1472
  try {
1417
1473
  this.enterOuterAlt(localContext, 1);
1418
1474
  {
1419
- this.state = 352;
1475
+ this.state = 368;
1420
1476
  this.columnRef();
1421
- this.state = 353;
1477
+ this.state = 369;
1422
1478
  this.match(GenericSqlParser.EQ);
1423
- this.state = 354;
1479
+ this.state = 370;
1424
1480
  this.expression();
1425
1481
  }
1426
1482
  }
@@ -1441,23 +1497,23 @@ export class GenericSqlParser extends SQLParserBase {
1441
1497
  }
1442
1498
  deleteStatement() {
1443
1499
  let localContext = new DeleteStatementContext(this.context, this.state);
1444
- this.enterRule(localContext, 56, GenericSqlParser.RULE_deleteStatement);
1500
+ this.enterRule(localContext, 58, GenericSqlParser.RULE_deleteStatement);
1445
1501
  let _la;
1446
1502
  try {
1447
1503
  this.enterOuterAlt(localContext, 1);
1448
1504
  {
1449
- this.state = 356;
1505
+ this.state = 372;
1450
1506
  this.match(GenericSqlParser.KW_DELETE);
1451
- this.state = 357;
1507
+ this.state = 373;
1452
1508
  this.match(GenericSqlParser.KW_FROM);
1453
- this.state = 358;
1509
+ this.state = 374;
1454
1510
  this.tableName();
1455
- this.state = 360;
1511
+ this.state = 376;
1456
1512
  this.errorHandler.sync(this);
1457
1513
  _la = this.tokenStream.LA(1);
1458
1514
  if (_la === 93) {
1459
1515
  {
1460
- this.state = 359;
1516
+ this.state = 375;
1461
1517
  this.whereClause();
1462
1518
  }
1463
1519
  }
@@ -1480,61 +1536,61 @@ export class GenericSqlParser extends SQLParserBase {
1480
1536
  }
1481
1537
  createTableStatement() {
1482
1538
  let localContext = new CreateTableStatementContext(this.context, this.state);
1483
- this.enterRule(localContext, 58, GenericSqlParser.RULE_createTableStatement);
1539
+ this.enterRule(localContext, 60, GenericSqlParser.RULE_createTableStatement);
1484
1540
  let _la;
1485
1541
  try {
1486
1542
  this.enterOuterAlt(localContext, 1);
1487
1543
  {
1488
- this.state = 362;
1544
+ this.state = 378;
1489
1545
  this.match(GenericSqlParser.KW_CREATE);
1490
- this.state = 363;
1546
+ this.state = 379;
1491
1547
  this.match(GenericSqlParser.KW_TABLE);
1492
- this.state = 367;
1548
+ this.state = 383;
1493
1549
  this.errorHandler.sync(this);
1494
- switch (this.interpreter.adaptivePredict(this.tokenStream, 41, this.context)) {
1550
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 43, this.context)) {
1495
1551
  case 1:
1496
1552
  {
1497
- this.state = 364;
1553
+ this.state = 380;
1498
1554
  this.match(GenericSqlParser.KW_IF);
1499
- this.state = 365;
1555
+ this.state = 381;
1500
1556
  this.match(GenericSqlParser.KW_NOT);
1501
- this.state = 366;
1557
+ this.state = 382;
1502
1558
  this.match(GenericSqlParser.KW_EXISTS);
1503
1559
  }
1504
1560
  break;
1505
1561
  }
1506
- this.state = 369;
1562
+ this.state = 385;
1507
1563
  this.tableNameCreate();
1508
- this.state = 370;
1564
+ this.state = 386;
1509
1565
  this.match(GenericSqlParser.T__1);
1510
- this.state = 371;
1566
+ this.state = 387;
1511
1567
  this.tableElement();
1512
- this.state = 376;
1568
+ this.state = 392;
1513
1569
  this.errorHandler.sync(this);
1514
1570
  _la = this.tokenStream.LA(1);
1515
1571
  while (_la === 1) {
1516
1572
  {
1517
1573
  {
1518
- this.state = 372;
1574
+ this.state = 388;
1519
1575
  this.match(GenericSqlParser.T__0);
1520
- this.state = 373;
1576
+ this.state = 389;
1521
1577
  this.tableElement();
1522
1578
  }
1523
1579
  }
1524
- this.state = 378;
1580
+ this.state = 394;
1525
1581
  this.errorHandler.sync(this);
1526
1582
  _la = this.tokenStream.LA(1);
1527
1583
  }
1528
- this.state = 379;
1584
+ this.state = 395;
1529
1585
  this.match(GenericSqlParser.T__2);
1530
- this.state = 382;
1586
+ this.state = 398;
1531
1587
  this.errorHandler.sync(this);
1532
- switch (this.interpreter.adaptivePredict(this.tokenStream, 43, this.context)) {
1588
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
1533
1589
  case 1:
1534
1590
  {
1535
- this.state = 380;
1591
+ this.state = 396;
1536
1592
  this.match(GenericSqlParser.KW_WITH);
1537
- this.state = 381;
1593
+ this.state = 397;
1538
1594
  this.properties();
1539
1595
  }
1540
1596
  break;
@@ -1558,22 +1614,22 @@ export class GenericSqlParser extends SQLParserBase {
1558
1614
  }
1559
1615
  tableElement() {
1560
1616
  let localContext = new TableElementContext(this.context, this.state);
1561
- this.enterRule(localContext, 60, GenericSqlParser.RULE_tableElement);
1617
+ this.enterRule(localContext, 62, GenericSqlParser.RULE_tableElement);
1562
1618
  try {
1563
- this.state = 386;
1619
+ this.state = 402;
1564
1620
  this.errorHandler.sync(this);
1565
- switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
1621
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 46, this.context)) {
1566
1622
  case 1:
1567
1623
  this.enterOuterAlt(localContext, 1);
1568
1624
  {
1569
- this.state = 384;
1625
+ this.state = 400;
1570
1626
  this.columnDefinition();
1571
1627
  }
1572
1628
  break;
1573
1629
  case 2:
1574
1630
  this.enterOuterAlt(localContext, 2);
1575
1631
  {
1576
- this.state = 385;
1632
+ this.state = 401;
1577
1633
  this.tableConstraint();
1578
1634
  }
1579
1635
  break;
@@ -1596,45 +1652,45 @@ export class GenericSqlParser extends SQLParserBase {
1596
1652
  }
1597
1653
  columnDefinition() {
1598
1654
  let localContext = new ColumnDefinitionContext(this.context, this.state);
1599
- this.enterRule(localContext, 62, GenericSqlParser.RULE_columnDefinition);
1655
+ this.enterRule(localContext, 64, GenericSqlParser.RULE_columnDefinition);
1600
1656
  let _la;
1601
1657
  try {
1602
1658
  this.enterOuterAlt(localContext, 1);
1603
1659
  {
1604
- this.state = 388;
1660
+ this.state = 404;
1605
1661
  this.columnRef();
1606
- this.state = 389;
1662
+ this.state = 405;
1607
1663
  this.dataType();
1608
- this.state = 392;
1664
+ this.state = 408;
1609
1665
  this.errorHandler.sync(this);
1610
1666
  _la = this.tokenStream.LA(1);
1611
1667
  if (_la === 61) {
1612
1668
  {
1613
- this.state = 390;
1669
+ this.state = 406;
1614
1670
  this.match(GenericSqlParser.KW_NOT);
1615
- this.state = 391;
1671
+ this.state = 407;
1616
1672
  this.match(GenericSqlParser.KW_NULL);
1617
1673
  }
1618
1674
  }
1619
- this.state = 396;
1675
+ this.state = 412;
1620
1676
  this.errorHandler.sync(this);
1621
1677
  _la = this.tokenStream.LA(1);
1622
1678
  if (_la === 27) {
1623
1679
  {
1624
- this.state = 394;
1680
+ this.state = 410;
1625
1681
  this.match(GenericSqlParser.KW_DEFAULT);
1626
- this.state = 395;
1682
+ this.state = 411;
1627
1683
  this.expression();
1628
1684
  }
1629
1685
  }
1630
- this.state = 400;
1686
+ this.state = 416;
1631
1687
  this.errorHandler.sync(this);
1632
1688
  _la = this.tokenStream.LA(1);
1633
1689
  if (_la === 71) {
1634
1690
  {
1635
- this.state = 398;
1691
+ this.state = 414;
1636
1692
  this.match(GenericSqlParser.KW_PRIMARY);
1637
- this.state = 399;
1693
+ this.state = 415;
1638
1694
  this.match(GenericSqlParser.KW_KEY);
1639
1695
  }
1640
1696
  }
@@ -1657,148 +1713,148 @@ export class GenericSqlParser extends SQLParserBase {
1657
1713
  }
1658
1714
  tableConstraint() {
1659
1715
  let localContext = new TableConstraintContext(this.context, this.state);
1660
- this.enterRule(localContext, 64, GenericSqlParser.RULE_tableConstraint);
1716
+ this.enterRule(localContext, 66, GenericSqlParser.RULE_tableConstraint);
1661
1717
  let _la;
1662
1718
  try {
1663
1719
  this.enterOuterAlt(localContext, 1);
1664
1720
  {
1665
- this.state = 404;
1721
+ this.state = 420;
1666
1722
  this.errorHandler.sync(this);
1667
1723
  _la = this.tokenStream.LA(1);
1668
1724
  if (_la === 22) {
1669
1725
  {
1670
- this.state = 402;
1726
+ this.state = 418;
1671
1727
  this.match(GenericSqlParser.KW_CONSTRAINT);
1672
- this.state = 403;
1728
+ this.state = 419;
1673
1729
  this.identifier();
1674
1730
  }
1675
1731
  }
1676
- this.state = 461;
1732
+ this.state = 477;
1677
1733
  this.errorHandler.sync(this);
1678
1734
  switch (this.tokenStream.LA(1)) {
1679
1735
  case GenericSqlParser.KW_PRIMARY:
1680
1736
  {
1681
- this.state = 406;
1737
+ this.state = 422;
1682
1738
  this.match(GenericSqlParser.KW_PRIMARY);
1683
- this.state = 407;
1739
+ this.state = 423;
1684
1740
  this.match(GenericSqlParser.KW_KEY);
1685
- this.state = 408;
1741
+ this.state = 424;
1686
1742
  this.match(GenericSqlParser.T__1);
1687
- this.state = 409;
1743
+ this.state = 425;
1688
1744
  this.columnRef();
1689
- this.state = 414;
1745
+ this.state = 430;
1690
1746
  this.errorHandler.sync(this);
1691
1747
  _la = this.tokenStream.LA(1);
1692
1748
  while (_la === 1) {
1693
1749
  {
1694
1750
  {
1695
- this.state = 410;
1751
+ this.state = 426;
1696
1752
  this.match(GenericSqlParser.T__0);
1697
- this.state = 411;
1753
+ this.state = 427;
1698
1754
  this.columnRef();
1699
1755
  }
1700
1756
  }
1701
- this.state = 416;
1757
+ this.state = 432;
1702
1758
  this.errorHandler.sync(this);
1703
1759
  _la = this.tokenStream.LA(1);
1704
1760
  }
1705
- this.state = 417;
1761
+ this.state = 433;
1706
1762
  this.match(GenericSqlParser.T__2);
1707
1763
  }
1708
1764
  break;
1709
1765
  case GenericSqlParser.KW_UNIQUE:
1710
1766
  {
1711
- this.state = 419;
1767
+ this.state = 435;
1712
1768
  this.match(GenericSqlParser.KW_UNIQUE);
1713
- this.state = 420;
1769
+ this.state = 436;
1714
1770
  this.match(GenericSqlParser.T__1);
1715
- this.state = 421;
1771
+ this.state = 437;
1716
1772
  this.columnRef();
1717
- this.state = 426;
1773
+ this.state = 442;
1718
1774
  this.errorHandler.sync(this);
1719
1775
  _la = this.tokenStream.LA(1);
1720
1776
  while (_la === 1) {
1721
1777
  {
1722
1778
  {
1723
- this.state = 422;
1779
+ this.state = 438;
1724
1780
  this.match(GenericSqlParser.T__0);
1725
- this.state = 423;
1781
+ this.state = 439;
1726
1782
  this.columnRef();
1727
1783
  }
1728
1784
  }
1729
- this.state = 428;
1785
+ this.state = 444;
1730
1786
  this.errorHandler.sync(this);
1731
1787
  _la = this.tokenStream.LA(1);
1732
1788
  }
1733
- this.state = 429;
1789
+ this.state = 445;
1734
1790
  this.match(GenericSqlParser.T__2);
1735
1791
  }
1736
1792
  break;
1737
1793
  case GenericSqlParser.KW_CHECK:
1738
1794
  {
1739
- this.state = 431;
1795
+ this.state = 447;
1740
1796
  this.match(GenericSqlParser.KW_CHECK);
1741
- this.state = 432;
1797
+ this.state = 448;
1742
1798
  this.match(GenericSqlParser.T__1);
1743
- this.state = 433;
1799
+ this.state = 449;
1744
1800
  this.expression();
1745
- this.state = 434;
1801
+ this.state = 450;
1746
1802
  this.match(GenericSqlParser.T__2);
1747
1803
  }
1748
1804
  break;
1749
1805
  case GenericSqlParser.KW_FOREIGN:
1750
1806
  {
1751
- this.state = 436;
1807
+ this.state = 452;
1752
1808
  this.match(GenericSqlParser.KW_FOREIGN);
1753
- this.state = 437;
1809
+ this.state = 453;
1754
1810
  this.match(GenericSqlParser.KW_KEY);
1755
- this.state = 438;
1811
+ this.state = 454;
1756
1812
  this.match(GenericSqlParser.T__1);
1757
- this.state = 439;
1813
+ this.state = 455;
1758
1814
  this.columnRef();
1759
- this.state = 444;
1815
+ this.state = 460;
1760
1816
  this.errorHandler.sync(this);
1761
1817
  _la = this.tokenStream.LA(1);
1762
1818
  while (_la === 1) {
1763
1819
  {
1764
1820
  {
1765
- this.state = 440;
1821
+ this.state = 456;
1766
1822
  this.match(GenericSqlParser.T__0);
1767
- this.state = 441;
1823
+ this.state = 457;
1768
1824
  this.columnRef();
1769
1825
  }
1770
1826
  }
1771
- this.state = 446;
1827
+ this.state = 462;
1772
1828
  this.errorHandler.sync(this);
1773
1829
  _la = this.tokenStream.LA(1);
1774
1830
  }
1775
- this.state = 447;
1831
+ this.state = 463;
1776
1832
  this.match(GenericSqlParser.T__2);
1777
- this.state = 448;
1833
+ this.state = 464;
1778
1834
  this.match(GenericSqlParser.KW_REFERENCES);
1779
- this.state = 449;
1835
+ this.state = 465;
1780
1836
  this.tableName();
1781
- this.state = 450;
1837
+ this.state = 466;
1782
1838
  this.match(GenericSqlParser.T__1);
1783
- this.state = 451;
1839
+ this.state = 467;
1784
1840
  this.columnRef();
1785
- this.state = 456;
1841
+ this.state = 472;
1786
1842
  this.errorHandler.sync(this);
1787
1843
  _la = this.tokenStream.LA(1);
1788
1844
  while (_la === 1) {
1789
1845
  {
1790
1846
  {
1791
- this.state = 452;
1847
+ this.state = 468;
1792
1848
  this.match(GenericSqlParser.T__0);
1793
- this.state = 453;
1849
+ this.state = 469;
1794
1850
  this.columnRef();
1795
1851
  }
1796
1852
  }
1797
- this.state = 458;
1853
+ this.state = 474;
1798
1854
  this.errorHandler.sync(this);
1799
1855
  _la = this.tokenStream.LA(1);
1800
1856
  }
1801
- this.state = 459;
1857
+ this.state = 475;
1802
1858
  this.match(GenericSqlParser.T__2);
1803
1859
  }
1804
1860
  break;
@@ -1824,114 +1880,114 @@ export class GenericSqlParser extends SQLParserBase {
1824
1880
  }
1825
1881
  alterTableStatement() {
1826
1882
  let localContext = new AlterTableStatementContext(this.context, this.state);
1827
- this.enterRule(localContext, 66, GenericSqlParser.RULE_alterTableStatement);
1883
+ this.enterRule(localContext, 68, GenericSqlParser.RULE_alterTableStatement);
1828
1884
  try {
1829
1885
  this.enterOuterAlt(localContext, 1);
1830
1886
  {
1831
- this.state = 463;
1887
+ this.state = 479;
1832
1888
  this.match(GenericSqlParser.KW_ALTER);
1833
- this.state = 464;
1889
+ this.state = 480;
1834
1890
  this.match(GenericSqlParser.KW_TABLE);
1835
- this.state = 467;
1891
+ this.state = 483;
1836
1892
  this.errorHandler.sync(this);
1837
- switch (this.interpreter.adaptivePredict(this.tokenStream, 54, this.context)) {
1893
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 56, this.context)) {
1838
1894
  case 1:
1839
1895
  {
1840
- this.state = 465;
1896
+ this.state = 481;
1841
1897
  this.match(GenericSqlParser.KW_IF);
1842
- this.state = 466;
1898
+ this.state = 482;
1843
1899
  this.match(GenericSqlParser.KW_EXISTS);
1844
1900
  }
1845
1901
  break;
1846
1902
  }
1847
- this.state = 469;
1903
+ this.state = 485;
1848
1904
  this.tableName();
1849
- this.state = 501;
1905
+ this.state = 517;
1850
1906
  this.errorHandler.sync(this);
1851
- switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
1907
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
1852
1908
  case 1:
1853
1909
  {
1854
- this.state = 470;
1910
+ this.state = 486;
1855
1911
  this.match(GenericSqlParser.KW_ADD);
1856
- this.state = 471;
1912
+ this.state = 487;
1857
1913
  this.match(GenericSqlParser.KW_COLUMN);
1858
- this.state = 475;
1914
+ this.state = 491;
1859
1915
  this.errorHandler.sync(this);
1860
- switch (this.interpreter.adaptivePredict(this.tokenStream, 55, this.context)) {
1916
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
1861
1917
  case 1:
1862
1918
  {
1863
- this.state = 472;
1919
+ this.state = 488;
1864
1920
  this.match(GenericSqlParser.KW_IF);
1865
- this.state = 473;
1921
+ this.state = 489;
1866
1922
  this.match(GenericSqlParser.KW_NOT);
1867
- this.state = 474;
1923
+ this.state = 490;
1868
1924
  this.match(GenericSqlParser.KW_EXISTS);
1869
1925
  }
1870
1926
  break;
1871
1927
  }
1872
- this.state = 477;
1928
+ this.state = 493;
1873
1929
  this.columnDefinition();
1874
1930
  }
1875
1931
  break;
1876
1932
  case 2:
1877
1933
  {
1878
- this.state = 478;
1934
+ this.state = 494;
1879
1935
  this.match(GenericSqlParser.KW_DROP);
1880
- this.state = 479;
1936
+ this.state = 495;
1881
1937
  this.match(GenericSqlParser.KW_COLUMN);
1882
- this.state = 482;
1938
+ this.state = 498;
1883
1939
  this.errorHandler.sync(this);
1884
- switch (this.interpreter.adaptivePredict(this.tokenStream, 56, this.context)) {
1940
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
1885
1941
  case 1:
1886
1942
  {
1887
- this.state = 480;
1943
+ this.state = 496;
1888
1944
  this.match(GenericSqlParser.KW_IF);
1889
- this.state = 481;
1945
+ this.state = 497;
1890
1946
  this.match(GenericSqlParser.KW_EXISTS);
1891
1947
  }
1892
1948
  break;
1893
1949
  }
1894
- this.state = 484;
1950
+ this.state = 500;
1895
1951
  this.columnRef();
1896
1952
  }
1897
1953
  break;
1898
1954
  case 3:
1899
1955
  {
1900
- this.state = 485;
1956
+ this.state = 501;
1901
1957
  this.match(GenericSqlParser.KW_RENAME);
1902
- this.state = 486;
1958
+ this.state = 502;
1903
1959
  this.match(GenericSqlParser.KW_TO);
1904
- this.state = 487;
1960
+ this.state = 503;
1905
1961
  this.tableNameCreate();
1906
1962
  }
1907
1963
  break;
1908
1964
  case 4:
1909
1965
  {
1910
- this.state = 488;
1966
+ this.state = 504;
1911
1967
  this.match(GenericSqlParser.KW_ALTER);
1912
- this.state = 489;
1968
+ this.state = 505;
1913
1969
  this.match(GenericSqlParser.KW_COLUMN);
1914
- this.state = 490;
1970
+ this.state = 506;
1915
1971
  this.columnRef();
1916
- this.state = 491;
1972
+ this.state = 507;
1917
1973
  this.match(GenericSqlParser.KW_SET);
1918
- this.state = 492;
1974
+ this.state = 508;
1919
1975
  this.match(GenericSqlParser.KW_DEFAULT);
1920
- this.state = 493;
1976
+ this.state = 509;
1921
1977
  this.expression();
1922
1978
  }
1923
1979
  break;
1924
1980
  case 5:
1925
1981
  {
1926
- this.state = 495;
1982
+ this.state = 511;
1927
1983
  this.match(GenericSqlParser.KW_ALTER);
1928
- this.state = 496;
1984
+ this.state = 512;
1929
1985
  this.match(GenericSqlParser.KW_COLUMN);
1930
- this.state = 497;
1986
+ this.state = 513;
1931
1987
  this.columnRef();
1932
- this.state = 498;
1988
+ this.state = 514;
1933
1989
  this.match(GenericSqlParser.KW_DROP);
1934
- this.state = 499;
1990
+ this.state = 515;
1935
1991
  this.match(GenericSqlParser.KW_DEFAULT);
1936
1992
  }
1937
1993
  break;
@@ -1955,27 +2011,27 @@ export class GenericSqlParser extends SQLParserBase {
1955
2011
  }
1956
2012
  dropTableStatement() {
1957
2013
  let localContext = new DropTableStatementContext(this.context, this.state);
1958
- this.enterRule(localContext, 68, GenericSqlParser.RULE_dropTableStatement);
2014
+ this.enterRule(localContext, 70, GenericSqlParser.RULE_dropTableStatement);
1959
2015
  try {
1960
2016
  this.enterOuterAlt(localContext, 1);
1961
2017
  {
1962
- this.state = 503;
2018
+ this.state = 519;
1963
2019
  this.match(GenericSqlParser.KW_DROP);
1964
- this.state = 504;
2020
+ this.state = 520;
1965
2021
  this.match(GenericSqlParser.KW_TABLE);
1966
- this.state = 507;
2022
+ this.state = 523;
1967
2023
  this.errorHandler.sync(this);
1968
- switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
2024
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context)) {
1969
2025
  case 1:
1970
2026
  {
1971
- this.state = 505;
2027
+ this.state = 521;
1972
2028
  this.match(GenericSqlParser.KW_IF);
1973
- this.state = 506;
2029
+ this.state = 522;
1974
2030
  this.match(GenericSqlParser.KW_EXISTS);
1975
2031
  }
1976
2032
  break;
1977
2033
  }
1978
- this.state = 509;
2034
+ this.state = 525;
1979
2035
  this.tableName();
1980
2036
  }
1981
2037
  }
@@ -1996,11 +2052,11 @@ export class GenericSqlParser extends SQLParserBase {
1996
2052
  }
1997
2053
  expression() {
1998
2054
  let localContext = new ExpressionContext(this.context, this.state);
1999
- this.enterRule(localContext, 70, GenericSqlParser.RULE_expression);
2055
+ this.enterRule(localContext, 72, GenericSqlParser.RULE_expression);
2000
2056
  try {
2001
2057
  this.enterOuterAlt(localContext, 1);
2002
2058
  {
2003
- this.state = 511;
2059
+ this.state = 527;
2004
2060
  this.booleanExpression(0);
2005
2061
  }
2006
2062
  }
@@ -2027,13 +2083,13 @@ export class GenericSqlParser extends SQLParserBase {
2027
2083
  let parentState = this.state;
2028
2084
  let localContext = new BooleanExpressionContext(this.context, parentState);
2029
2085
  let previousContext = localContext;
2030
- let _startState = 72;
2031
- this.enterRecursionRule(localContext, 72, GenericSqlParser.RULE_booleanExpression, _p);
2086
+ let _startState = 74;
2087
+ this.enterRecursionRule(localContext, 74, GenericSqlParser.RULE_booleanExpression, _p);
2032
2088
  try {
2033
2089
  let alternative;
2034
2090
  this.enterOuterAlt(localContext, 1);
2035
2091
  {
2036
- this.state = 517;
2092
+ this.state = 533;
2037
2093
  this.errorHandler.sync(this);
2038
2094
  switch (this.tokenStream.LA(1)) {
2039
2095
  case GenericSqlParser.T__1:
@@ -2099,7 +2155,7 @@ export class GenericSqlParser extends SQLParserBase {
2099
2155
  localContext = new PredicatedContext(localContext);
2100
2156
  this.context = localContext;
2101
2157
  previousContext = localContext;
2102
- this.state = 514;
2158
+ this.state = 530;
2103
2159
  this.predicatedExpression();
2104
2160
  }
2105
2161
  break;
@@ -2108,9 +2164,9 @@ export class GenericSqlParser extends SQLParserBase {
2108
2164
  localContext = new NotExpressionContext(localContext);
2109
2165
  this.context = localContext;
2110
2166
  previousContext = localContext;
2111
- this.state = 515;
2167
+ this.state = 531;
2112
2168
  this.match(GenericSqlParser.KW_NOT);
2113
- this.state = 516;
2169
+ this.state = 532;
2114
2170
  this.booleanExpression(3);
2115
2171
  }
2116
2172
  break;
@@ -2118,9 +2174,9 @@ export class GenericSqlParser extends SQLParserBase {
2118
2174
  throw new antlr.NoViableAltException(this);
2119
2175
  }
2120
2176
  this.context.stop = this.tokenStream.LT(-1);
2121
- this.state = 527;
2177
+ this.state = 543;
2122
2178
  this.errorHandler.sync(this);
2123
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 61, this.context);
2179
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2124
2180
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2125
2181
  if (alternative === 1) {
2126
2182
  if (this._parseListeners != null) {
@@ -2128,21 +2184,21 @@ export class GenericSqlParser extends SQLParserBase {
2128
2184
  }
2129
2185
  previousContext = localContext;
2130
2186
  {
2131
- this.state = 525;
2187
+ this.state = 541;
2132
2188
  this.errorHandler.sync(this);
2133
- switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context)) {
2189
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2134
2190
  case 1:
2135
2191
  {
2136
2192
  localContext = new AndExpressionContext(new BooleanExpressionContext(parentContext, parentState));
2137
2193
  localContext._left = previousContext;
2138
2194
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_booleanExpression);
2139
- this.state = 519;
2195
+ this.state = 535;
2140
2196
  if (!(this.precpred(this.context, 2))) {
2141
2197
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
2142
2198
  }
2143
- this.state = 520;
2199
+ this.state = 536;
2144
2200
  this.match(GenericSqlParser.KW_AND);
2145
- this.state = 521;
2201
+ this.state = 537;
2146
2202
  localContext._right = this.booleanExpression(3);
2147
2203
  }
2148
2204
  break;
@@ -2151,22 +2207,22 @@ export class GenericSqlParser extends SQLParserBase {
2151
2207
  localContext = new OrExpressionContext(new BooleanExpressionContext(parentContext, parentState));
2152
2208
  localContext._left = previousContext;
2153
2209
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_booleanExpression);
2154
- this.state = 522;
2210
+ this.state = 538;
2155
2211
  if (!(this.precpred(this.context, 1))) {
2156
2212
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2157
2213
  }
2158
- this.state = 523;
2214
+ this.state = 539;
2159
2215
  this.match(GenericSqlParser.KW_OR);
2160
- this.state = 524;
2216
+ this.state = 540;
2161
2217
  localContext._right = this.booleanExpression(2);
2162
2218
  }
2163
2219
  break;
2164
2220
  }
2165
2221
  }
2166
2222
  }
2167
- this.state = 529;
2223
+ this.state = 545;
2168
2224
  this.errorHandler.sync(this);
2169
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 61, this.context);
2225
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2170
2226
  }
2171
2227
  }
2172
2228
  }
@@ -2187,18 +2243,18 @@ export class GenericSqlParser extends SQLParserBase {
2187
2243
  }
2188
2244
  predicatedExpression() {
2189
2245
  let localContext = new PredicatedExpressionContext(this.context, this.state);
2190
- this.enterRule(localContext, 74, GenericSqlParser.RULE_predicatedExpression);
2246
+ this.enterRule(localContext, 76, GenericSqlParser.RULE_predicatedExpression);
2191
2247
  try {
2192
2248
  this.enterOuterAlt(localContext, 1);
2193
2249
  {
2194
- this.state = 530;
2250
+ this.state = 546;
2195
2251
  this.valueExpression(0);
2196
- this.state = 532;
2252
+ this.state = 548;
2197
2253
  this.errorHandler.sync(this);
2198
- switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2254
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
2199
2255
  case 1:
2200
2256
  {
2201
- this.state = 531;
2257
+ this.state = 547;
2202
2258
  this.predicate();
2203
2259
  }
2204
2260
  break;
@@ -2222,19 +2278,19 @@ export class GenericSqlParser extends SQLParserBase {
2222
2278
  }
2223
2279
  predicate() {
2224
2280
  let localContext = new PredicateContext(this.context, this.state);
2225
- this.enterRule(localContext, 76, GenericSqlParser.RULE_predicate);
2281
+ this.enterRule(localContext, 78, GenericSqlParser.RULE_predicate);
2226
2282
  let _la;
2227
2283
  try {
2228
- this.state = 589;
2284
+ this.state = 605;
2229
2285
  this.errorHandler.sync(this);
2230
- switch (this.interpreter.adaptivePredict(this.tokenStream, 71, this.context)) {
2286
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 73, this.context)) {
2231
2287
  case 1:
2232
2288
  localContext = new ComparisonPredicateContext(localContext);
2233
2289
  this.enterOuterAlt(localContext, 1);
2234
2290
  {
2235
- this.state = 534;
2291
+ this.state = 550;
2236
2292
  this.comparisonOperator();
2237
- this.state = 535;
2293
+ this.state = 551;
2238
2294
  localContext._right = this.valueExpression(0);
2239
2295
  }
2240
2296
  break;
@@ -2242,38 +2298,38 @@ export class GenericSqlParser extends SQLParserBase {
2242
2298
  localContext = new InPredicateContext(localContext);
2243
2299
  this.enterOuterAlt(localContext, 2);
2244
2300
  {
2245
- this.state = 538;
2301
+ this.state = 554;
2246
2302
  this.errorHandler.sync(this);
2247
2303
  _la = this.tokenStream.LA(1);
2248
2304
  if (_la === 61) {
2249
2305
  {
2250
- this.state = 537;
2306
+ this.state = 553;
2251
2307
  this.match(GenericSqlParser.KW_NOT);
2252
2308
  }
2253
2309
  }
2254
- this.state = 540;
2310
+ this.state = 556;
2255
2311
  this.match(GenericSqlParser.KW_IN);
2256
- this.state = 541;
2312
+ this.state = 557;
2257
2313
  this.match(GenericSqlParser.T__1);
2258
- this.state = 542;
2314
+ this.state = 558;
2259
2315
  this.expression();
2260
- this.state = 547;
2316
+ this.state = 563;
2261
2317
  this.errorHandler.sync(this);
2262
2318
  _la = this.tokenStream.LA(1);
2263
2319
  while (_la === 1) {
2264
2320
  {
2265
2321
  {
2266
- this.state = 543;
2322
+ this.state = 559;
2267
2323
  this.match(GenericSqlParser.T__0);
2268
- this.state = 544;
2324
+ this.state = 560;
2269
2325
  this.expression();
2270
2326
  }
2271
2327
  }
2272
- this.state = 549;
2328
+ this.state = 565;
2273
2329
  this.errorHandler.sync(this);
2274
2330
  _la = this.tokenStream.LA(1);
2275
2331
  }
2276
- this.state = 550;
2332
+ this.state = 566;
2277
2333
  this.match(GenericSqlParser.T__2);
2278
2334
  }
2279
2335
  break;
@@ -2281,22 +2337,22 @@ export class GenericSqlParser extends SQLParserBase {
2281
2337
  localContext = new InSubqueryPredicateContext(localContext);
2282
2338
  this.enterOuterAlt(localContext, 3);
2283
2339
  {
2284
- this.state = 553;
2340
+ this.state = 569;
2285
2341
  this.errorHandler.sync(this);
2286
2342
  _la = this.tokenStream.LA(1);
2287
2343
  if (_la === 61) {
2288
2344
  {
2289
- this.state = 552;
2345
+ this.state = 568;
2290
2346
  this.match(GenericSqlParser.KW_NOT);
2291
2347
  }
2292
2348
  }
2293
- this.state = 555;
2349
+ this.state = 571;
2294
2350
  this.match(GenericSqlParser.KW_IN);
2295
- this.state = 556;
2351
+ this.state = 572;
2296
2352
  this.match(GenericSqlParser.T__1);
2297
- this.state = 557;
2353
+ this.state = 573;
2298
2354
  this.queryStatement();
2299
- this.state = 558;
2355
+ this.state = 574;
2300
2356
  this.match(GenericSqlParser.T__2);
2301
2357
  }
2302
2358
  break;
@@ -2304,22 +2360,22 @@ export class GenericSqlParser extends SQLParserBase {
2304
2360
  localContext = new BetweenPredicateContext(localContext);
2305
2361
  this.enterOuterAlt(localContext, 4);
2306
2362
  {
2307
- this.state = 561;
2363
+ this.state = 577;
2308
2364
  this.errorHandler.sync(this);
2309
2365
  _la = this.tokenStream.LA(1);
2310
2366
  if (_la === 61) {
2311
2367
  {
2312
- this.state = 560;
2368
+ this.state = 576;
2313
2369
  this.match(GenericSqlParser.KW_NOT);
2314
2370
  }
2315
2371
  }
2316
- this.state = 563;
2372
+ this.state = 579;
2317
2373
  this.match(GenericSqlParser.KW_BETWEEN);
2318
- this.state = 564;
2374
+ this.state = 580;
2319
2375
  localContext._lower = this.valueExpression(0);
2320
- this.state = 565;
2376
+ this.state = 581;
2321
2377
  this.match(GenericSqlParser.KW_AND);
2322
- this.state = 566;
2378
+ this.state = 582;
2323
2379
  localContext._upper = this.valueExpression(0);
2324
2380
  }
2325
2381
  break;
@@ -2327,27 +2383,27 @@ export class GenericSqlParser extends SQLParserBase {
2327
2383
  localContext = new LikePredicateContext(localContext);
2328
2384
  this.enterOuterAlt(localContext, 5);
2329
2385
  {
2330
- this.state = 569;
2386
+ this.state = 585;
2331
2387
  this.errorHandler.sync(this);
2332
2388
  _la = this.tokenStream.LA(1);
2333
2389
  if (_la === 61) {
2334
2390
  {
2335
- this.state = 568;
2391
+ this.state = 584;
2336
2392
  this.match(GenericSqlParser.KW_NOT);
2337
2393
  }
2338
2394
  }
2339
- this.state = 571;
2395
+ this.state = 587;
2340
2396
  this.match(GenericSqlParser.KW_LIKE);
2341
- this.state = 572;
2397
+ this.state = 588;
2342
2398
  localContext._pattern = this.valueExpression(0);
2343
- this.state = 575;
2399
+ this.state = 591;
2344
2400
  this.errorHandler.sync(this);
2345
- switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
2401
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
2346
2402
  case 1:
2347
2403
  {
2348
- this.state = 573;
2404
+ this.state = 589;
2349
2405
  this.match(GenericSqlParser.KW_ESCAPE);
2350
- this.state = 574;
2406
+ this.state = 590;
2351
2407
  localContext._escape = this.valueExpression(0);
2352
2408
  }
2353
2409
  break;
@@ -2358,18 +2414,18 @@ export class GenericSqlParser extends SQLParserBase {
2358
2414
  localContext = new NullPredicateContext(localContext);
2359
2415
  this.enterOuterAlt(localContext, 6);
2360
2416
  {
2361
- this.state = 577;
2417
+ this.state = 593;
2362
2418
  this.match(GenericSqlParser.KW_IS);
2363
- this.state = 579;
2419
+ this.state = 595;
2364
2420
  this.errorHandler.sync(this);
2365
2421
  _la = this.tokenStream.LA(1);
2366
2422
  if (_la === 61) {
2367
2423
  {
2368
- this.state = 578;
2424
+ this.state = 594;
2369
2425
  this.match(GenericSqlParser.KW_NOT);
2370
2426
  }
2371
2427
  }
2372
- this.state = 581;
2428
+ this.state = 597;
2373
2429
  this.match(GenericSqlParser.KW_NULL);
2374
2430
  }
2375
2431
  break;
@@ -2377,22 +2433,22 @@ export class GenericSqlParser extends SQLParserBase {
2377
2433
  localContext = new DistinctFromPredicateContext(localContext);
2378
2434
  this.enterOuterAlt(localContext, 7);
2379
2435
  {
2380
- this.state = 582;
2436
+ this.state = 598;
2381
2437
  this.match(GenericSqlParser.KW_IS);
2382
- this.state = 584;
2438
+ this.state = 600;
2383
2439
  this.errorHandler.sync(this);
2384
2440
  _la = this.tokenStream.LA(1);
2385
2441
  if (_la === 61) {
2386
2442
  {
2387
- this.state = 583;
2443
+ this.state = 599;
2388
2444
  this.match(GenericSqlParser.KW_NOT);
2389
2445
  }
2390
2446
  }
2391
- this.state = 586;
2447
+ this.state = 602;
2392
2448
  this.match(GenericSqlParser.KW_DISTINCT);
2393
- this.state = 587;
2449
+ this.state = 603;
2394
2450
  this.match(GenericSqlParser.KW_FROM);
2395
- this.state = 588;
2451
+ this.state = 604;
2396
2452
  localContext._right = this.valueExpression(0);
2397
2453
  }
2398
2454
  break;
@@ -2415,12 +2471,12 @@ export class GenericSqlParser extends SQLParserBase {
2415
2471
  }
2416
2472
  comparisonOperator() {
2417
2473
  let localContext = new ComparisonOperatorContext(this.context, this.state);
2418
- this.enterRule(localContext, 78, GenericSqlParser.RULE_comparisonOperator);
2474
+ this.enterRule(localContext, 80, GenericSqlParser.RULE_comparisonOperator);
2419
2475
  let _la;
2420
2476
  try {
2421
2477
  this.enterOuterAlt(localContext, 1);
2422
2478
  {
2423
- this.state = 591;
2479
+ this.state = 607;
2424
2480
  _la = this.tokenStream.LA(1);
2425
2481
  if (!(((((_la - 95)) & ~0x1F) === 0 && ((1 << (_la - 95)) & 63) !== 0))) {
2426
2482
  this.errorHandler.recoverInline(this);
@@ -2454,14 +2510,14 @@ export class GenericSqlParser extends SQLParserBase {
2454
2510
  let parentState = this.state;
2455
2511
  let localContext = new ValueExpressionContext(this.context, parentState);
2456
2512
  let previousContext = localContext;
2457
- let _startState = 80;
2458
- this.enterRecursionRule(localContext, 80, GenericSqlParser.RULE_valueExpression, _p);
2513
+ let _startState = 82;
2514
+ this.enterRecursionRule(localContext, 82, GenericSqlParser.RULE_valueExpression, _p);
2459
2515
  let _la;
2460
2516
  try {
2461
2517
  let alternative;
2462
2518
  this.enterOuterAlt(localContext, 1);
2463
2519
  {
2464
- this.state = 597;
2520
+ this.state = 613;
2465
2521
  this.errorHandler.sync(this);
2466
2522
  switch (this.tokenStream.LA(1)) {
2467
2523
  case GenericSqlParser.T__1:
@@ -2525,7 +2581,7 @@ export class GenericSqlParser extends SQLParserBase {
2525
2581
  localContext = new ValueExpressionDefaultContext(localContext);
2526
2582
  this.context = localContext;
2527
2583
  previousContext = localContext;
2528
- this.state = 594;
2584
+ this.state = 610;
2529
2585
  this.primaryExpression();
2530
2586
  }
2531
2587
  break;
@@ -2535,7 +2591,7 @@ export class GenericSqlParser extends SQLParserBase {
2535
2591
  localContext = new ArithmeticUnaryContext(localContext);
2536
2592
  this.context = localContext;
2537
2593
  previousContext = localContext;
2538
- this.state = 595;
2594
+ this.state = 611;
2539
2595
  localContext._operator = this.tokenStream.LT(1);
2540
2596
  _la = this.tokenStream.LA(1);
2541
2597
  if (!(_la === 101 || _la === 102)) {
@@ -2545,7 +2601,7 @@ export class GenericSqlParser extends SQLParserBase {
2545
2601
  this.errorHandler.reportMatch(this);
2546
2602
  this.consume();
2547
2603
  }
2548
- this.state = 596;
2604
+ this.state = 612;
2549
2605
  this.valueExpression(4);
2550
2606
  }
2551
2607
  break;
@@ -2553,9 +2609,9 @@ export class GenericSqlParser extends SQLParserBase {
2553
2609
  throw new antlr.NoViableAltException(this);
2554
2610
  }
2555
2611
  this.context.stop = this.tokenStream.LT(-1);
2556
- this.state = 610;
2612
+ this.state = 626;
2557
2613
  this.errorHandler.sync(this);
2558
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
2614
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 76, this.context);
2559
2615
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2560
2616
  if (alternative === 1) {
2561
2617
  if (this._parseListeners != null) {
@@ -2563,19 +2619,19 @@ export class GenericSqlParser extends SQLParserBase {
2563
2619
  }
2564
2620
  previousContext = localContext;
2565
2621
  {
2566
- this.state = 608;
2622
+ this.state = 624;
2567
2623
  this.errorHandler.sync(this);
2568
- switch (this.interpreter.adaptivePredict(this.tokenStream, 73, this.context)) {
2624
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context)) {
2569
2625
  case 1:
2570
2626
  {
2571
2627
  localContext = new ArithmeticBinaryContext(new ValueExpressionContext(parentContext, parentState));
2572
2628
  localContext._left = previousContext;
2573
2629
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_valueExpression);
2574
- this.state = 599;
2630
+ this.state = 615;
2575
2631
  if (!(this.precpred(this.context, 3))) {
2576
2632
  throw this.createFailedPredicateException("this.precpred(this.context, 3)");
2577
2633
  }
2578
- this.state = 600;
2634
+ this.state = 616;
2579
2635
  localContext._operator = this.tokenStream.LT(1);
2580
2636
  _la = this.tokenStream.LA(1);
2581
2637
  if (!(((((_la - 103)) & ~0x1F) === 0 && ((1 << (_la - 103)) & 7) !== 0))) {
@@ -2585,7 +2641,7 @@ export class GenericSqlParser extends SQLParserBase {
2585
2641
  this.errorHandler.reportMatch(this);
2586
2642
  this.consume();
2587
2643
  }
2588
- this.state = 601;
2644
+ this.state = 617;
2589
2645
  localContext._right = this.valueExpression(4);
2590
2646
  }
2591
2647
  break;
@@ -2594,11 +2650,11 @@ export class GenericSqlParser extends SQLParserBase {
2594
2650
  localContext = new ArithmeticBinaryContext(new ValueExpressionContext(parentContext, parentState));
2595
2651
  localContext._left = previousContext;
2596
2652
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_valueExpression);
2597
- this.state = 602;
2653
+ this.state = 618;
2598
2654
  if (!(this.precpred(this.context, 2))) {
2599
2655
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
2600
2656
  }
2601
- this.state = 603;
2657
+ this.state = 619;
2602
2658
  localContext._operator = this.tokenStream.LT(1);
2603
2659
  _la = this.tokenStream.LA(1);
2604
2660
  if (!(_la === 101 || _la === 102)) {
@@ -2608,7 +2664,7 @@ export class GenericSqlParser extends SQLParserBase {
2608
2664
  this.errorHandler.reportMatch(this);
2609
2665
  this.consume();
2610
2666
  }
2611
- this.state = 604;
2667
+ this.state = 620;
2612
2668
  localContext._right = this.valueExpression(3);
2613
2669
  }
2614
2670
  break;
@@ -2617,22 +2673,22 @@ export class GenericSqlParser extends SQLParserBase {
2617
2673
  localContext = new ConcatenationContext(new ValueExpressionContext(parentContext, parentState));
2618
2674
  localContext._left = previousContext;
2619
2675
  this.pushNewRecursionContext(localContext, _startState, GenericSqlParser.RULE_valueExpression);
2620
- this.state = 605;
2676
+ this.state = 621;
2621
2677
  if (!(this.precpred(this.context, 1))) {
2622
2678
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2623
2679
  }
2624
- this.state = 606;
2680
+ this.state = 622;
2625
2681
  this.match(GenericSqlParser.CONCAT);
2626
- this.state = 607;
2682
+ this.state = 623;
2627
2683
  localContext._right = this.valueExpression(2);
2628
2684
  }
2629
2685
  break;
2630
2686
  }
2631
2687
  }
2632
2688
  }
2633
- this.state = 612;
2689
+ this.state = 628;
2634
2690
  this.errorHandler.sync(this);
2635
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
2691
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 76, this.context);
2636
2692
  }
2637
2693
  }
2638
2694
  }
@@ -2653,17 +2709,17 @@ export class GenericSqlParser extends SQLParserBase {
2653
2709
  }
2654
2710
  primaryExpression() {
2655
2711
  let localContext = new PrimaryExpressionContext(this.context, this.state);
2656
- this.enterRule(localContext, 82, GenericSqlParser.RULE_primaryExpression);
2712
+ this.enterRule(localContext, 84, GenericSqlParser.RULE_primaryExpression);
2657
2713
  let _la;
2658
2714
  try {
2659
- this.state = 693;
2715
+ this.state = 709;
2660
2716
  this.errorHandler.sync(this);
2661
- switch (this.interpreter.adaptivePredict(this.tokenStream, 83, this.context)) {
2717
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 85, this.context)) {
2662
2718
  case 1:
2663
2719
  localContext = new LiteralExpressionContext(localContext);
2664
2720
  this.enterOuterAlt(localContext, 1);
2665
2721
  {
2666
- this.state = 613;
2722
+ this.state = 629;
2667
2723
  this.literal();
2668
2724
  }
2669
2725
  break;
@@ -2671,46 +2727,46 @@ export class GenericSqlParser extends SQLParserBase {
2671
2727
  localContext = new FunctionCallContext(localContext);
2672
2728
  this.enterOuterAlt(localContext, 2);
2673
2729
  {
2674
- this.state = 614;
2730
+ this.state = 630;
2675
2731
  this.qualifiedName();
2676
- this.state = 615;
2732
+ this.state = 631;
2677
2733
  this.match(GenericSqlParser.T__1);
2678
- this.state = 627;
2734
+ this.state = 643;
2679
2735
  this.errorHandler.sync(this);
2680
2736
  _la = this.tokenStream.LA(1);
2681
2737
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4013421668) !== 0) || ((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 1069048399) !== 0) || ((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 2151019809) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & 65409) !== 0)) {
2682
2738
  {
2683
- this.state = 617;
2739
+ this.state = 633;
2684
2740
  this.errorHandler.sync(this);
2685
- switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context)) {
2741
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 77, this.context)) {
2686
2742
  case 1:
2687
2743
  {
2688
- this.state = 616;
2744
+ this.state = 632;
2689
2745
  this.setQuantifier();
2690
2746
  }
2691
2747
  break;
2692
2748
  }
2693
- this.state = 619;
2749
+ this.state = 635;
2694
2750
  this.expression();
2695
- this.state = 624;
2751
+ this.state = 640;
2696
2752
  this.errorHandler.sync(this);
2697
2753
  _la = this.tokenStream.LA(1);
2698
2754
  while (_la === 1) {
2699
2755
  {
2700
2756
  {
2701
- this.state = 620;
2757
+ this.state = 636;
2702
2758
  this.match(GenericSqlParser.T__0);
2703
- this.state = 621;
2759
+ this.state = 637;
2704
2760
  this.expression();
2705
2761
  }
2706
2762
  }
2707
- this.state = 626;
2763
+ this.state = 642;
2708
2764
  this.errorHandler.sync(this);
2709
2765
  _la = this.tokenStream.LA(1);
2710
2766
  }
2711
2767
  }
2712
2768
  }
2713
- this.state = 629;
2769
+ this.state = 645;
2714
2770
  this.match(GenericSqlParser.T__2);
2715
2771
  }
2716
2772
  break;
@@ -2718,34 +2774,34 @@ export class GenericSqlParser extends SQLParserBase {
2718
2774
  localContext = new SearchedCaseExpressionContext(localContext);
2719
2775
  this.enterOuterAlt(localContext, 3);
2720
2776
  {
2721
- this.state = 631;
2777
+ this.state = 647;
2722
2778
  this.match(GenericSqlParser.KW_CASE);
2723
- this.state = 633;
2779
+ this.state = 649;
2724
2780
  this.errorHandler.sync(this);
2725
2781
  _la = this.tokenStream.LA(1);
2726
2782
  do {
2727
2783
  {
2728
2784
  {
2729
- this.state = 632;
2785
+ this.state = 648;
2730
2786
  this.whenClause();
2731
2787
  }
2732
2788
  }
2733
- this.state = 635;
2789
+ this.state = 651;
2734
2790
  this.errorHandler.sync(this);
2735
2791
  _la = this.tokenStream.LA(1);
2736
2792
  } while (_la === 92);
2737
- this.state = 639;
2793
+ this.state = 655;
2738
2794
  this.errorHandler.sync(this);
2739
2795
  _la = this.tokenStream.LA(1);
2740
2796
  if (_la === 33) {
2741
2797
  {
2742
- this.state = 637;
2798
+ this.state = 653;
2743
2799
  this.match(GenericSqlParser.KW_ELSE);
2744
- this.state = 638;
2800
+ this.state = 654;
2745
2801
  this.expression();
2746
2802
  }
2747
2803
  }
2748
- this.state = 641;
2804
+ this.state = 657;
2749
2805
  this.match(GenericSqlParser.KW_END);
2750
2806
  }
2751
2807
  break;
@@ -2753,36 +2809,36 @@ export class GenericSqlParser extends SQLParserBase {
2753
2809
  localContext = new SimpleCaseExpressionContext(localContext);
2754
2810
  this.enterOuterAlt(localContext, 4);
2755
2811
  {
2756
- this.state = 643;
2812
+ this.state = 659;
2757
2813
  this.match(GenericSqlParser.KW_CASE);
2758
- this.state = 644;
2814
+ this.state = 660;
2759
2815
  this.expression();
2760
- this.state = 646;
2816
+ this.state = 662;
2761
2817
  this.errorHandler.sync(this);
2762
2818
  _la = this.tokenStream.LA(1);
2763
2819
  do {
2764
2820
  {
2765
2821
  {
2766
- this.state = 645;
2822
+ this.state = 661;
2767
2823
  this.whenClause();
2768
2824
  }
2769
2825
  }
2770
- this.state = 648;
2826
+ this.state = 664;
2771
2827
  this.errorHandler.sync(this);
2772
2828
  _la = this.tokenStream.LA(1);
2773
2829
  } while (_la === 92);
2774
- this.state = 652;
2830
+ this.state = 668;
2775
2831
  this.errorHandler.sync(this);
2776
2832
  _la = this.tokenStream.LA(1);
2777
2833
  if (_la === 33) {
2778
2834
  {
2779
- this.state = 650;
2835
+ this.state = 666;
2780
2836
  this.match(GenericSqlParser.KW_ELSE);
2781
- this.state = 651;
2837
+ this.state = 667;
2782
2838
  this.expression();
2783
2839
  }
2784
2840
  }
2785
- this.state = 654;
2841
+ this.state = 670;
2786
2842
  this.match(GenericSqlParser.KW_END);
2787
2843
  }
2788
2844
  break;
@@ -2790,17 +2846,17 @@ export class GenericSqlParser extends SQLParserBase {
2790
2846
  localContext = new CastExpressionContext(localContext);
2791
2847
  this.enterOuterAlt(localContext, 5);
2792
2848
  {
2793
- this.state = 656;
2849
+ this.state = 672;
2794
2850
  this.match(GenericSqlParser.KW_CAST);
2795
- this.state = 657;
2851
+ this.state = 673;
2796
2852
  this.match(GenericSqlParser.T__1);
2797
- this.state = 658;
2853
+ this.state = 674;
2798
2854
  this.expression();
2799
- this.state = 659;
2855
+ this.state = 675;
2800
2856
  this.match(GenericSqlParser.KW_AS);
2801
- this.state = 660;
2857
+ this.state = 676;
2802
2858
  this.dataType();
2803
- this.state = 661;
2859
+ this.state = 677;
2804
2860
  this.match(GenericSqlParser.T__2);
2805
2861
  }
2806
2862
  break;
@@ -2808,29 +2864,29 @@ export class GenericSqlParser extends SQLParserBase {
2808
2864
  localContext = new CoalesceExpressionContext(localContext);
2809
2865
  this.enterOuterAlt(localContext, 6);
2810
2866
  {
2811
- this.state = 663;
2867
+ this.state = 679;
2812
2868
  this.match(GenericSqlParser.KW_COALESCE);
2813
- this.state = 664;
2869
+ this.state = 680;
2814
2870
  this.match(GenericSqlParser.T__1);
2815
- this.state = 665;
2871
+ this.state = 681;
2816
2872
  this.expression();
2817
- this.state = 670;
2873
+ this.state = 686;
2818
2874
  this.errorHandler.sync(this);
2819
2875
  _la = this.tokenStream.LA(1);
2820
2876
  while (_la === 1) {
2821
2877
  {
2822
2878
  {
2823
- this.state = 666;
2879
+ this.state = 682;
2824
2880
  this.match(GenericSqlParser.T__0);
2825
- this.state = 667;
2881
+ this.state = 683;
2826
2882
  this.expression();
2827
2883
  }
2828
2884
  }
2829
- this.state = 672;
2885
+ this.state = 688;
2830
2886
  this.errorHandler.sync(this);
2831
2887
  _la = this.tokenStream.LA(1);
2832
2888
  }
2833
- this.state = 673;
2889
+ this.state = 689;
2834
2890
  this.match(GenericSqlParser.T__2);
2835
2891
  }
2836
2892
  break;
@@ -2838,17 +2894,17 @@ export class GenericSqlParser extends SQLParserBase {
2838
2894
  localContext = new NullIfExpressionContext(localContext);
2839
2895
  this.enterOuterAlt(localContext, 7);
2840
2896
  {
2841
- this.state = 675;
2897
+ this.state = 691;
2842
2898
  this.match(GenericSqlParser.KW_NULLIF);
2843
- this.state = 676;
2899
+ this.state = 692;
2844
2900
  this.match(GenericSqlParser.T__1);
2845
- this.state = 677;
2901
+ this.state = 693;
2846
2902
  this.valueExpression(0);
2847
- this.state = 678;
2903
+ this.state = 694;
2848
2904
  this.match(GenericSqlParser.T__0);
2849
- this.state = 679;
2905
+ this.state = 695;
2850
2906
  this.valueExpression(0);
2851
- this.state = 680;
2907
+ this.state = 696;
2852
2908
  this.match(GenericSqlParser.T__2);
2853
2909
  }
2854
2910
  break;
@@ -2856,11 +2912,11 @@ export class GenericSqlParser extends SQLParserBase {
2856
2912
  localContext = new ParenthesizedExpressionContext(localContext);
2857
2913
  this.enterOuterAlt(localContext, 8);
2858
2914
  {
2859
- this.state = 682;
2915
+ this.state = 698;
2860
2916
  this.match(GenericSqlParser.T__1);
2861
- this.state = 683;
2917
+ this.state = 699;
2862
2918
  this.expression();
2863
- this.state = 684;
2919
+ this.state = 700;
2864
2920
  this.match(GenericSqlParser.T__2);
2865
2921
  }
2866
2922
  break;
@@ -2868,13 +2924,13 @@ export class GenericSqlParser extends SQLParserBase {
2868
2924
  localContext = new ExistsExpressionContext(localContext);
2869
2925
  this.enterOuterAlt(localContext, 9);
2870
2926
  {
2871
- this.state = 686;
2927
+ this.state = 702;
2872
2928
  this.match(GenericSqlParser.KW_EXISTS);
2873
- this.state = 687;
2929
+ this.state = 703;
2874
2930
  this.match(GenericSqlParser.T__1);
2875
- this.state = 688;
2931
+ this.state = 704;
2876
2932
  this.queryStatement();
2877
- this.state = 689;
2933
+ this.state = 705;
2878
2934
  this.match(GenericSqlParser.T__2);
2879
2935
  }
2880
2936
  break;
@@ -2882,7 +2938,7 @@ export class GenericSqlParser extends SQLParserBase {
2882
2938
  localContext = new SubqueryExpressionDefaultContext(localContext);
2883
2939
  this.enterOuterAlt(localContext, 10);
2884
2940
  {
2885
- this.state = 691;
2941
+ this.state = 707;
2886
2942
  this.subqueryExpression();
2887
2943
  }
2888
2944
  break;
@@ -2890,7 +2946,7 @@ export class GenericSqlParser extends SQLParserBase {
2890
2946
  localContext = new ColumnReferenceContext(localContext);
2891
2947
  this.enterOuterAlt(localContext, 11);
2892
2948
  {
2893
- this.state = 692;
2949
+ this.state = 708;
2894
2950
  this.qualifiedName();
2895
2951
  }
2896
2952
  break;
@@ -2913,17 +2969,17 @@ export class GenericSqlParser extends SQLParserBase {
2913
2969
  }
2914
2970
  whenClause() {
2915
2971
  let localContext = new WhenClauseContext(this.context, this.state);
2916
- this.enterRule(localContext, 84, GenericSqlParser.RULE_whenClause);
2972
+ this.enterRule(localContext, 86, GenericSqlParser.RULE_whenClause);
2917
2973
  try {
2918
2974
  this.enterOuterAlt(localContext, 1);
2919
2975
  {
2920
- this.state = 695;
2976
+ this.state = 711;
2921
2977
  this.match(GenericSqlParser.KW_WHEN);
2922
- this.state = 696;
2978
+ this.state = 712;
2923
2979
  localContext._condition = this.expression();
2924
- this.state = 697;
2980
+ this.state = 713;
2925
2981
  this.match(GenericSqlParser.KW_THEN);
2926
- this.state = 698;
2982
+ this.state = 714;
2927
2983
  localContext._result = this.expression();
2928
2984
  }
2929
2985
  }
@@ -2944,15 +3000,15 @@ export class GenericSqlParser extends SQLParserBase {
2944
3000
  }
2945
3001
  subqueryExpression() {
2946
3002
  let localContext = new SubqueryExpressionContext(this.context, this.state);
2947
- this.enterRule(localContext, 86, GenericSqlParser.RULE_subqueryExpression);
3003
+ this.enterRule(localContext, 88, GenericSqlParser.RULE_subqueryExpression);
2948
3004
  try {
2949
3005
  this.enterOuterAlt(localContext, 1);
2950
3006
  {
2951
- this.state = 700;
3007
+ this.state = 716;
2952
3008
  this.match(GenericSqlParser.T__1);
2953
- this.state = 701;
3009
+ this.state = 717;
2954
3010
  this.queryStatement();
2955
- this.state = 702;
3011
+ this.state = 718;
2956
3012
  this.match(GenericSqlParser.T__2);
2957
3013
  }
2958
3014
  }
@@ -2973,94 +3029,94 @@ export class GenericSqlParser extends SQLParserBase {
2973
3029
  }
2974
3030
  dataType() {
2975
3031
  let localContext = new DataTypeContext(this.context, this.state);
2976
- this.enterRule(localContext, 88, GenericSqlParser.RULE_dataType);
3032
+ this.enterRule(localContext, 90, GenericSqlParser.RULE_dataType);
2977
3033
  let _la;
2978
3034
  try {
2979
- this.state = 750;
3035
+ this.state = 766;
2980
3036
  this.errorHandler.sync(this);
2981
3037
  switch (this.tokenStream.LA(1)) {
2982
3038
  case GenericSqlParser.KW_BOOLEAN:
2983
3039
  this.enterOuterAlt(localContext, 1);
2984
3040
  {
2985
- this.state = 704;
3041
+ this.state = 720;
2986
3042
  this.match(GenericSqlParser.KW_BOOLEAN);
2987
3043
  }
2988
3044
  break;
2989
3045
  case GenericSqlParser.KW_TINYINT:
2990
3046
  this.enterOuterAlt(localContext, 2);
2991
3047
  {
2992
- this.state = 705;
3048
+ this.state = 721;
2993
3049
  this.match(GenericSqlParser.KW_TINYINT);
2994
3050
  }
2995
3051
  break;
2996
3052
  case GenericSqlParser.KW_SMALLINT:
2997
3053
  this.enterOuterAlt(localContext, 3);
2998
3054
  {
2999
- this.state = 706;
3055
+ this.state = 722;
3000
3056
  this.match(GenericSqlParser.KW_SMALLINT);
3001
3057
  }
3002
3058
  break;
3003
3059
  case GenericSqlParser.KW_INT:
3004
3060
  this.enterOuterAlt(localContext, 4);
3005
3061
  {
3006
- this.state = 707;
3062
+ this.state = 723;
3007
3063
  this.match(GenericSqlParser.KW_INT);
3008
3064
  }
3009
3065
  break;
3010
3066
  case GenericSqlParser.KW_INTEGER:
3011
3067
  this.enterOuterAlt(localContext, 5);
3012
3068
  {
3013
- this.state = 708;
3069
+ this.state = 724;
3014
3070
  this.match(GenericSqlParser.KW_INTEGER);
3015
3071
  }
3016
3072
  break;
3017
3073
  case GenericSqlParser.KW_BIGINT:
3018
3074
  this.enterOuterAlt(localContext, 6);
3019
3075
  {
3020
- this.state = 709;
3076
+ this.state = 725;
3021
3077
  this.match(GenericSqlParser.KW_BIGINT);
3022
3078
  }
3023
3079
  break;
3024
3080
  case GenericSqlParser.KW_FLOAT:
3025
3081
  this.enterOuterAlt(localContext, 7);
3026
3082
  {
3027
- this.state = 710;
3083
+ this.state = 726;
3028
3084
  this.match(GenericSqlParser.KW_FLOAT);
3029
3085
  }
3030
3086
  break;
3031
3087
  case GenericSqlParser.KW_DOUBLE:
3032
3088
  this.enterOuterAlt(localContext, 8);
3033
3089
  {
3034
- this.state = 711;
3090
+ this.state = 727;
3035
3091
  this.match(GenericSqlParser.KW_DOUBLE);
3036
3092
  }
3037
3093
  break;
3038
3094
  case GenericSqlParser.KW_DECIMAL:
3039
3095
  this.enterOuterAlt(localContext, 9);
3040
3096
  {
3041
- this.state = 712;
3097
+ this.state = 728;
3042
3098
  this.match(GenericSqlParser.KW_DECIMAL);
3043
- this.state = 720;
3099
+ this.state = 736;
3044
3100
  this.errorHandler.sync(this);
3045
- switch (this.interpreter.adaptivePredict(this.tokenStream, 85, this.context)) {
3101
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 87, this.context)) {
3046
3102
  case 1:
3047
3103
  {
3048
- this.state = 713;
3104
+ this.state = 729;
3049
3105
  this.match(GenericSqlParser.T__1);
3050
- this.state = 714;
3106
+ this.state = 730;
3051
3107
  localContext._precision = this.match(GenericSqlParser.INTEGER_VALUE);
3052
- this.state = 717;
3108
+ this.state = 733;
3053
3109
  this.errorHandler.sync(this);
3054
3110
  _la = this.tokenStream.LA(1);
3055
3111
  if (_la === 1) {
3056
3112
  {
3057
- this.state = 715;
3113
+ this.state = 731;
3058
3114
  this.match(GenericSqlParser.T__0);
3059
- this.state = 716;
3115
+ this.state = 732;
3060
3116
  localContext._scale = this.match(GenericSqlParser.INTEGER_VALUE);
3061
3117
  }
3062
3118
  }
3063
- this.state = 719;
3119
+ this.state = 735;
3064
3120
  this.match(GenericSqlParser.T__2);
3065
3121
  }
3066
3122
  break;
@@ -3070,29 +3126,29 @@ export class GenericSqlParser extends SQLParserBase {
3070
3126
  case GenericSqlParser.KW_NUMERIC:
3071
3127
  this.enterOuterAlt(localContext, 10);
3072
3128
  {
3073
- this.state = 722;
3129
+ this.state = 738;
3074
3130
  this.match(GenericSqlParser.KW_NUMERIC);
3075
- this.state = 730;
3131
+ this.state = 746;
3076
3132
  this.errorHandler.sync(this);
3077
- switch (this.interpreter.adaptivePredict(this.tokenStream, 87, this.context)) {
3133
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 89, this.context)) {
3078
3134
  case 1:
3079
3135
  {
3080
- this.state = 723;
3136
+ this.state = 739;
3081
3137
  this.match(GenericSqlParser.T__1);
3082
- this.state = 724;
3138
+ this.state = 740;
3083
3139
  localContext._precision = this.match(GenericSqlParser.INTEGER_VALUE);
3084
- this.state = 727;
3140
+ this.state = 743;
3085
3141
  this.errorHandler.sync(this);
3086
3142
  _la = this.tokenStream.LA(1);
3087
3143
  if (_la === 1) {
3088
3144
  {
3089
- this.state = 725;
3145
+ this.state = 741;
3090
3146
  this.match(GenericSqlParser.T__0);
3091
- this.state = 726;
3147
+ this.state = 742;
3092
3148
  localContext._scale = this.match(GenericSqlParser.INTEGER_VALUE);
3093
3149
  }
3094
3150
  }
3095
- this.state = 729;
3151
+ this.state = 745;
3096
3152
  this.match(GenericSqlParser.T__2);
3097
3153
  }
3098
3154
  break;
@@ -3102,18 +3158,18 @@ export class GenericSqlParser extends SQLParserBase {
3102
3158
  case GenericSqlParser.KW_VARCHAR:
3103
3159
  this.enterOuterAlt(localContext, 11);
3104
3160
  {
3105
- this.state = 732;
3161
+ this.state = 748;
3106
3162
  this.match(GenericSqlParser.KW_VARCHAR);
3107
- this.state = 736;
3163
+ this.state = 752;
3108
3164
  this.errorHandler.sync(this);
3109
- switch (this.interpreter.adaptivePredict(this.tokenStream, 88, this.context)) {
3165
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 90, this.context)) {
3110
3166
  case 1:
3111
3167
  {
3112
- this.state = 733;
3168
+ this.state = 749;
3113
3169
  this.match(GenericSqlParser.T__1);
3114
- this.state = 734;
3170
+ this.state = 750;
3115
3171
  localContext._maxLength = this.match(GenericSqlParser.INTEGER_VALUE);
3116
- this.state = 735;
3172
+ this.state = 751;
3117
3173
  this.match(GenericSqlParser.T__2);
3118
3174
  }
3119
3175
  break;
@@ -3123,18 +3179,18 @@ export class GenericSqlParser extends SQLParserBase {
3123
3179
  case GenericSqlParser.KW_CHAR:
3124
3180
  this.enterOuterAlt(localContext, 12);
3125
3181
  {
3126
- this.state = 738;
3182
+ this.state = 754;
3127
3183
  this.match(GenericSqlParser.KW_CHAR);
3128
- this.state = 742;
3184
+ this.state = 758;
3129
3185
  this.errorHandler.sync(this);
3130
- switch (this.interpreter.adaptivePredict(this.tokenStream, 89, this.context)) {
3186
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 91, this.context)) {
3131
3187
  case 1:
3132
3188
  {
3133
- this.state = 739;
3189
+ this.state = 755;
3134
3190
  this.match(GenericSqlParser.T__1);
3135
- this.state = 740;
3191
+ this.state = 756;
3136
3192
  localContext._length = this.match(GenericSqlParser.INTEGER_VALUE);
3137
- this.state = 741;
3193
+ this.state = 757;
3138
3194
  this.match(GenericSqlParser.T__2);
3139
3195
  }
3140
3196
  break;
@@ -3144,42 +3200,42 @@ export class GenericSqlParser extends SQLParserBase {
3144
3200
  case GenericSqlParser.KW_TEXT:
3145
3201
  this.enterOuterAlt(localContext, 13);
3146
3202
  {
3147
- this.state = 744;
3203
+ this.state = 760;
3148
3204
  this.match(GenericSqlParser.KW_TEXT);
3149
3205
  }
3150
3206
  break;
3151
3207
  case GenericSqlParser.KW_DATE:
3152
3208
  this.enterOuterAlt(localContext, 14);
3153
3209
  {
3154
- this.state = 745;
3210
+ this.state = 761;
3155
3211
  this.match(GenericSqlParser.KW_DATE);
3156
3212
  }
3157
3213
  break;
3158
3214
  case GenericSqlParser.KW_TIME:
3159
3215
  this.enterOuterAlt(localContext, 15);
3160
3216
  {
3161
- this.state = 746;
3217
+ this.state = 762;
3162
3218
  this.match(GenericSqlParser.KW_TIME);
3163
3219
  }
3164
3220
  break;
3165
3221
  case GenericSqlParser.KW_TIMESTAMP:
3166
3222
  this.enterOuterAlt(localContext, 16);
3167
3223
  {
3168
- this.state = 747;
3224
+ this.state = 763;
3169
3225
  this.match(GenericSqlParser.KW_TIMESTAMP);
3170
3226
  }
3171
3227
  break;
3172
3228
  case GenericSqlParser.KW_BINARY:
3173
3229
  this.enterOuterAlt(localContext, 17);
3174
3230
  {
3175
- this.state = 748;
3231
+ this.state = 764;
3176
3232
  this.match(GenericSqlParser.KW_BINARY);
3177
3233
  }
3178
3234
  break;
3179
3235
  case GenericSqlParser.KW_VARBINARY:
3180
3236
  this.enterOuterAlt(localContext, 18);
3181
3237
  {
3182
- this.state = 749;
3238
+ this.state = 765;
3183
3239
  this.match(GenericSqlParser.KW_VARBINARY);
3184
3240
  }
3185
3241
  break;
@@ -3204,32 +3260,32 @@ export class GenericSqlParser extends SQLParserBase {
3204
3260
  }
3205
3261
  properties() {
3206
3262
  let localContext = new PropertiesContext(this.context, this.state);
3207
- this.enterRule(localContext, 90, GenericSqlParser.RULE_properties);
3263
+ this.enterRule(localContext, 92, GenericSqlParser.RULE_properties);
3208
3264
  let _la;
3209
3265
  try {
3210
3266
  this.enterOuterAlt(localContext, 1);
3211
3267
  {
3212
- this.state = 752;
3268
+ this.state = 768;
3213
3269
  this.match(GenericSqlParser.T__1);
3214
- this.state = 753;
3270
+ this.state = 769;
3215
3271
  this.property();
3216
- this.state = 758;
3272
+ this.state = 774;
3217
3273
  this.errorHandler.sync(this);
3218
3274
  _la = this.tokenStream.LA(1);
3219
3275
  while (_la === 1) {
3220
3276
  {
3221
3277
  {
3222
- this.state = 754;
3278
+ this.state = 770;
3223
3279
  this.match(GenericSqlParser.T__0);
3224
- this.state = 755;
3280
+ this.state = 771;
3225
3281
  this.property();
3226
3282
  }
3227
3283
  }
3228
- this.state = 760;
3284
+ this.state = 776;
3229
3285
  this.errorHandler.sync(this);
3230
3286
  _la = this.tokenStream.LA(1);
3231
3287
  }
3232
- this.state = 761;
3288
+ this.state = 777;
3233
3289
  this.match(GenericSqlParser.T__2);
3234
3290
  }
3235
3291
  }
@@ -3250,15 +3306,15 @@ export class GenericSqlParser extends SQLParserBase {
3250
3306
  }
3251
3307
  property() {
3252
3308
  let localContext = new PropertyContext(this.context, this.state);
3253
- this.enterRule(localContext, 92, GenericSqlParser.RULE_property);
3309
+ this.enterRule(localContext, 94, GenericSqlParser.RULE_property);
3254
3310
  try {
3255
3311
  this.enterOuterAlt(localContext, 1);
3256
3312
  {
3257
- this.state = 763;
3313
+ this.state = 779;
3258
3314
  this.identifier();
3259
- this.state = 764;
3315
+ this.state = 780;
3260
3316
  this.match(GenericSqlParser.EQ);
3261
- this.state = 765;
3317
+ this.state = 781;
3262
3318
  this.literal();
3263
3319
  }
3264
3320
  }
@@ -3279,16 +3335,16 @@ export class GenericSqlParser extends SQLParserBase {
3279
3335
  }
3280
3336
  literal() {
3281
3337
  let localContext = new LiteralContext(this.context, this.state);
3282
- this.enterRule(localContext, 94, GenericSqlParser.RULE_literal);
3338
+ this.enterRule(localContext, 96, GenericSqlParser.RULE_literal);
3283
3339
  try {
3284
- this.state = 775;
3340
+ this.state = 791;
3285
3341
  this.errorHandler.sync(this);
3286
3342
  switch (this.tokenStream.LA(1)) {
3287
3343
  case GenericSqlParser.KW_NULL:
3288
3344
  localContext = new NullLiteralContext(localContext);
3289
3345
  this.enterOuterAlt(localContext, 1);
3290
3346
  {
3291
- this.state = 767;
3347
+ this.state = 783;
3292
3348
  this.match(GenericSqlParser.KW_NULL);
3293
3349
  }
3294
3350
  break;
@@ -3296,7 +3352,7 @@ export class GenericSqlParser extends SQLParserBase {
3296
3352
  localContext = new BooleanLiteralContext(localContext);
3297
3353
  this.enterOuterAlt(localContext, 2);
3298
3354
  {
3299
- this.state = 768;
3355
+ this.state = 784;
3300
3356
  this.match(GenericSqlParser.KW_TRUE);
3301
3357
  }
3302
3358
  break;
@@ -3304,7 +3360,7 @@ export class GenericSqlParser extends SQLParserBase {
3304
3360
  localContext = new BooleanLiteralContext(localContext);
3305
3361
  this.enterOuterAlt(localContext, 3);
3306
3362
  {
3307
- this.state = 769;
3363
+ this.state = 785;
3308
3364
  this.match(GenericSqlParser.KW_FALSE);
3309
3365
  }
3310
3366
  break;
@@ -3312,7 +3368,7 @@ export class GenericSqlParser extends SQLParserBase {
3312
3368
  localContext = new IntegerLiteralContext(localContext);
3313
3369
  this.enterOuterAlt(localContext, 4);
3314
3370
  {
3315
- this.state = 770;
3371
+ this.state = 786;
3316
3372
  this.match(GenericSqlParser.INTEGER_VALUE);
3317
3373
  }
3318
3374
  break;
@@ -3320,7 +3376,7 @@ export class GenericSqlParser extends SQLParserBase {
3320
3376
  localContext = new DecimalLiteralContext(localContext);
3321
3377
  this.enterOuterAlt(localContext, 5);
3322
3378
  {
3323
- this.state = 771;
3379
+ this.state = 787;
3324
3380
  this.match(GenericSqlParser.DECIMAL_VALUE);
3325
3381
  }
3326
3382
  break;
@@ -3328,7 +3384,7 @@ export class GenericSqlParser extends SQLParserBase {
3328
3384
  localContext = new DoubleLiteralContext(localContext);
3329
3385
  this.enterOuterAlt(localContext, 6);
3330
3386
  {
3331
- this.state = 772;
3387
+ this.state = 788;
3332
3388
  this.match(GenericSqlParser.DOUBLE_VALUE);
3333
3389
  }
3334
3390
  break;
@@ -3336,7 +3392,7 @@ export class GenericSqlParser extends SQLParserBase {
3336
3392
  localContext = new StringLiteralContext(localContext);
3337
3393
  this.enterOuterAlt(localContext, 7);
3338
3394
  {
3339
- this.state = 773;
3395
+ this.state = 789;
3340
3396
  this.match(GenericSqlParser.STRING);
3341
3397
  }
3342
3398
  break;
@@ -3344,7 +3400,7 @@ export class GenericSqlParser extends SQLParserBase {
3344
3400
  localContext = new BinaryLiteralContext(localContext);
3345
3401
  this.enterOuterAlt(localContext, 8);
3346
3402
  {
3347
- this.state = 774;
3403
+ this.state = 790;
3348
3404
  this.match(GenericSqlParser.BINARY_LITERAL);
3349
3405
  }
3350
3406
  break;
@@ -3369,36 +3425,36 @@ export class GenericSqlParser extends SQLParserBase {
3369
3425
  }
3370
3426
  identifier() {
3371
3427
  let localContext = new IdentifierContext(this.context, this.state);
3372
- this.enterRule(localContext, 96, GenericSqlParser.RULE_identifier);
3428
+ this.enterRule(localContext, 98, GenericSqlParser.RULE_identifier);
3373
3429
  try {
3374
- this.state = 782;
3430
+ this.state = 798;
3375
3431
  this.errorHandler.sync(this);
3376
3432
  switch (this.tokenStream.LA(1)) {
3377
3433
  case GenericSqlParser.IDENTIFIER:
3378
3434
  this.enterOuterAlt(localContext, 1);
3379
3435
  {
3380
- this.state = 777;
3436
+ this.state = 793;
3381
3437
  this.match(GenericSqlParser.IDENTIFIER);
3382
3438
  }
3383
3439
  break;
3384
3440
  case GenericSqlParser.DIGIT_IDENTIFIER:
3385
3441
  this.enterOuterAlt(localContext, 2);
3386
3442
  {
3387
- this.state = 778;
3443
+ this.state = 794;
3388
3444
  this.match(GenericSqlParser.DIGIT_IDENTIFIER);
3389
3445
  }
3390
3446
  break;
3391
3447
  case GenericSqlParser.QUOTED_IDENTIFIER:
3392
3448
  this.enterOuterAlt(localContext, 3);
3393
3449
  {
3394
- this.state = 779;
3450
+ this.state = 795;
3395
3451
  this.match(GenericSqlParser.QUOTED_IDENTIFIER);
3396
3452
  }
3397
3453
  break;
3398
3454
  case GenericSqlParser.BACKQUOTED_IDENTIFIER:
3399
3455
  this.enterOuterAlt(localContext, 4);
3400
3456
  {
3401
- this.state = 780;
3457
+ this.state = 796;
3402
3458
  this.match(GenericSqlParser.BACKQUOTED_IDENTIFIER);
3403
3459
  }
3404
3460
  break;
@@ -3447,7 +3503,7 @@ export class GenericSqlParser extends SQLParserBase {
3447
3503
  case GenericSqlParser.KW_VARBINARY:
3448
3504
  this.enterOuterAlt(localContext, 5);
3449
3505
  {
3450
- this.state = 781;
3506
+ this.state = 797;
3451
3507
  this.nonReserved();
3452
3508
  }
3453
3509
  break;
@@ -3472,30 +3528,30 @@ export class GenericSqlParser extends SQLParserBase {
3472
3528
  }
3473
3529
  qualifiedName() {
3474
3530
  let localContext = new QualifiedNameContext(this.context, this.state);
3475
- this.enterRule(localContext, 98, GenericSqlParser.RULE_qualifiedName);
3531
+ this.enterRule(localContext, 100, GenericSqlParser.RULE_qualifiedName);
3476
3532
  try {
3477
3533
  let alternative;
3478
3534
  this.enterOuterAlt(localContext, 1);
3479
3535
  {
3480
- this.state = 784;
3536
+ this.state = 800;
3481
3537
  this.identifier();
3482
- this.state = 789;
3538
+ this.state = 805;
3483
3539
  this.errorHandler.sync(this);
3484
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 94, this.context);
3540
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 96, this.context);
3485
3541
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3486
3542
  if (alternative === 1) {
3487
3543
  {
3488
3544
  {
3489
- this.state = 785;
3545
+ this.state = 801;
3490
3546
  this.match(GenericSqlParser.T__3);
3491
- this.state = 786;
3547
+ this.state = 802;
3492
3548
  this.identifier();
3493
3549
  }
3494
3550
  }
3495
3551
  }
3496
- this.state = 791;
3552
+ this.state = 807;
3497
3553
  this.errorHandler.sync(this);
3498
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 94, this.context);
3554
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 96, this.context);
3499
3555
  }
3500
3556
  }
3501
3557
  }
@@ -3516,11 +3572,11 @@ export class GenericSqlParser extends SQLParserBase {
3516
3572
  }
3517
3573
  columnRef() {
3518
3574
  let localContext = new ColumnRefContext(this.context, this.state);
3519
- this.enterRule(localContext, 100, GenericSqlParser.RULE_columnRef);
3575
+ this.enterRule(localContext, 102, GenericSqlParser.RULE_columnRef);
3520
3576
  try {
3521
3577
  this.enterOuterAlt(localContext, 1);
3522
3578
  {
3523
- this.state = 792;
3579
+ this.state = 808;
3524
3580
  this.identifier();
3525
3581
  }
3526
3582
  }
@@ -3541,11 +3597,11 @@ export class GenericSqlParser extends SQLParserBase {
3541
3597
  }
3542
3598
  tableName() {
3543
3599
  let localContext = new TableNameContext(this.context, this.state);
3544
- this.enterRule(localContext, 102, GenericSqlParser.RULE_tableName);
3600
+ this.enterRule(localContext, 104, GenericSqlParser.RULE_tableName);
3545
3601
  try {
3546
3602
  this.enterOuterAlt(localContext, 1);
3547
3603
  {
3548
- this.state = 794;
3604
+ this.state = 810;
3549
3605
  this.qualifiedName();
3550
3606
  }
3551
3607
  }
@@ -3566,11 +3622,11 @@ export class GenericSqlParser extends SQLParserBase {
3566
3622
  }
3567
3623
  tableNameCreate() {
3568
3624
  let localContext = new TableNameCreateContext(this.context, this.state);
3569
- this.enterRule(localContext, 104, GenericSqlParser.RULE_tableNameCreate);
3625
+ this.enterRule(localContext, 106, GenericSqlParser.RULE_tableNameCreate);
3570
3626
  try {
3571
3627
  this.enterOuterAlt(localContext, 1);
3572
3628
  {
3573
- this.state = 796;
3629
+ this.state = 812;
3574
3630
  this.qualifiedName();
3575
3631
  }
3576
3632
  }
@@ -3591,12 +3647,12 @@ export class GenericSqlParser extends SQLParserBase {
3591
3647
  }
3592
3648
  nonReserved() {
3593
3649
  let localContext = new NonReservedContext(this.context, this.state);
3594
- this.enterRule(localContext, 106, GenericSqlParser.RULE_nonReserved);
3650
+ this.enterRule(localContext, 108, GenericSqlParser.RULE_nonReserved);
3595
3651
  let _la;
3596
3652
  try {
3597
3653
  this.enterOuterAlt(localContext, 1);
3598
3654
  {
3599
- this.state = 798;
3655
+ this.state = 814;
3600
3656
  _la = this.tokenStream.LA(1);
3601
3657
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 2939483232) !== 0) || ((((_la - 38)) & ~0x1F) === 0 && ((1 << (_la - 38)) & 509358375) !== 0) || ((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 3536161) !== 0))) {
3602
3658
  this.errorHandler.recoverInline(this);
@@ -3624,11 +3680,11 @@ export class GenericSqlParser extends SQLParserBase {
3624
3680
  }
3625
3681
  sempred(localContext, ruleIndex, predIndex) {
3626
3682
  switch (ruleIndex) {
3627
- case 14:
3683
+ case 15:
3628
3684
  return this.relation_sempred(localContext, predIndex);
3629
- case 36:
3685
+ case 37:
3630
3686
  return this.booleanExpression_sempred(localContext, predIndex);
3631
- case 40:
3687
+ case 41:
3632
3688
  return this.valueExpression_sempred(localContext, predIndex);
3633
3689
  }
3634
3690
  return true;
@@ -3799,53 +3855,54 @@ GenericSqlParser.RULE_statement = 3;
3799
3855
  GenericSqlParser.RULE_queryStatement = 4;
3800
3856
  GenericSqlParser.RULE_withClause = 5;
3801
3857
  GenericSqlParser.RULE_namedQuery = 6;
3802
- GenericSqlParser.RULE_queryNoWith = 7;
3803
- GenericSqlParser.RULE_queryTerm = 8;
3804
- GenericSqlParser.RULE_queryPrimary = 9;
3805
- GenericSqlParser.RULE_querySpecification = 10;
3806
- GenericSqlParser.RULE_setQuantifier = 11;
3807
- GenericSqlParser.RULE_selectItem = 12;
3808
- GenericSqlParser.RULE_fromClause = 13;
3809
- GenericSqlParser.RULE_relation = 14;
3810
- GenericSqlParser.RULE_joinType = 15;
3811
- GenericSqlParser.RULE_aliasedRelation = 16;
3812
- GenericSqlParser.RULE_relationPrimary = 17;
3813
- GenericSqlParser.RULE_whereClause = 18;
3814
- GenericSqlParser.RULE_groupByClause = 19;
3815
- GenericSqlParser.RULE_havingClause = 20;
3816
- GenericSqlParser.RULE_orderByClause = 21;
3817
- GenericSqlParser.RULE_sortItem = 22;
3818
- GenericSqlParser.RULE_limitClause = 23;
3819
- GenericSqlParser.RULE_insertStatement = 24;
3820
- GenericSqlParser.RULE_columnList = 25;
3821
- GenericSqlParser.RULE_updateStatement = 26;
3822
- GenericSqlParser.RULE_updateAssignment = 27;
3823
- GenericSqlParser.RULE_deleteStatement = 28;
3824
- GenericSqlParser.RULE_createTableStatement = 29;
3825
- GenericSqlParser.RULE_tableElement = 30;
3826
- GenericSqlParser.RULE_columnDefinition = 31;
3827
- GenericSqlParser.RULE_tableConstraint = 32;
3828
- GenericSqlParser.RULE_alterTableStatement = 33;
3829
- GenericSqlParser.RULE_dropTableStatement = 34;
3830
- GenericSqlParser.RULE_expression = 35;
3831
- GenericSqlParser.RULE_booleanExpression = 36;
3832
- GenericSqlParser.RULE_predicatedExpression = 37;
3833
- GenericSqlParser.RULE_predicate = 38;
3834
- GenericSqlParser.RULE_comparisonOperator = 39;
3835
- GenericSqlParser.RULE_valueExpression = 40;
3836
- GenericSqlParser.RULE_primaryExpression = 41;
3837
- GenericSqlParser.RULE_whenClause = 42;
3838
- GenericSqlParser.RULE_subqueryExpression = 43;
3839
- GenericSqlParser.RULE_dataType = 44;
3840
- GenericSqlParser.RULE_properties = 45;
3841
- GenericSqlParser.RULE_property = 46;
3842
- GenericSqlParser.RULE_literal = 47;
3843
- GenericSqlParser.RULE_identifier = 48;
3844
- GenericSqlParser.RULE_qualifiedName = 49;
3845
- GenericSqlParser.RULE_columnRef = 50;
3846
- GenericSqlParser.RULE_tableName = 51;
3847
- GenericSqlParser.RULE_tableNameCreate = 52;
3848
- GenericSqlParser.RULE_nonReserved = 53;
3858
+ GenericSqlParser.RULE_cteColumnList = 7;
3859
+ GenericSqlParser.RULE_queryNoWith = 8;
3860
+ GenericSqlParser.RULE_queryTerm = 9;
3861
+ GenericSqlParser.RULE_queryPrimary = 10;
3862
+ GenericSqlParser.RULE_querySpecification = 11;
3863
+ GenericSqlParser.RULE_setQuantifier = 12;
3864
+ GenericSqlParser.RULE_selectItem = 13;
3865
+ GenericSqlParser.RULE_fromClause = 14;
3866
+ GenericSqlParser.RULE_relation = 15;
3867
+ GenericSqlParser.RULE_joinType = 16;
3868
+ GenericSqlParser.RULE_aliasedRelation = 17;
3869
+ GenericSqlParser.RULE_relationPrimary = 18;
3870
+ GenericSqlParser.RULE_whereClause = 19;
3871
+ GenericSqlParser.RULE_groupByClause = 20;
3872
+ GenericSqlParser.RULE_havingClause = 21;
3873
+ GenericSqlParser.RULE_orderByClause = 22;
3874
+ GenericSqlParser.RULE_sortItem = 23;
3875
+ GenericSqlParser.RULE_limitClause = 24;
3876
+ GenericSqlParser.RULE_insertStatement = 25;
3877
+ GenericSqlParser.RULE_columnList = 26;
3878
+ GenericSqlParser.RULE_updateStatement = 27;
3879
+ GenericSqlParser.RULE_updateAssignment = 28;
3880
+ GenericSqlParser.RULE_deleteStatement = 29;
3881
+ GenericSqlParser.RULE_createTableStatement = 30;
3882
+ GenericSqlParser.RULE_tableElement = 31;
3883
+ GenericSqlParser.RULE_columnDefinition = 32;
3884
+ GenericSqlParser.RULE_tableConstraint = 33;
3885
+ GenericSqlParser.RULE_alterTableStatement = 34;
3886
+ GenericSqlParser.RULE_dropTableStatement = 35;
3887
+ GenericSqlParser.RULE_expression = 36;
3888
+ GenericSqlParser.RULE_booleanExpression = 37;
3889
+ GenericSqlParser.RULE_predicatedExpression = 38;
3890
+ GenericSqlParser.RULE_predicate = 39;
3891
+ GenericSqlParser.RULE_comparisonOperator = 40;
3892
+ GenericSqlParser.RULE_valueExpression = 41;
3893
+ GenericSqlParser.RULE_primaryExpression = 42;
3894
+ GenericSqlParser.RULE_whenClause = 43;
3895
+ GenericSqlParser.RULE_subqueryExpression = 44;
3896
+ GenericSqlParser.RULE_dataType = 45;
3897
+ GenericSqlParser.RULE_properties = 46;
3898
+ GenericSqlParser.RULE_property = 47;
3899
+ GenericSqlParser.RULE_literal = 48;
3900
+ GenericSqlParser.RULE_identifier = 49;
3901
+ GenericSqlParser.RULE_qualifiedName = 50;
3902
+ GenericSqlParser.RULE_columnRef = 51;
3903
+ GenericSqlParser.RULE_tableName = 52;
3904
+ GenericSqlParser.RULE_tableNameCreate = 53;
3905
+ GenericSqlParser.RULE_nonReserved = 54;
3849
3906
  GenericSqlParser.literalNames = [
3850
3907
  null, "','", "'('", "')'", "'.'", "'ADD'", "'ALL'", "'ALTER'", "'AND'",
3851
3908
  "'AS'", "'ASC'", "'BETWEEN'", "'BIGINT'", "'BINARY'", "'BOOLEAN'",
@@ -3891,13 +3948,13 @@ GenericSqlParser.symbolicNames = [
3891
3948
  ];
3892
3949
  GenericSqlParser.ruleNames = [
3893
3950
  "program", "statements", "singleStatement", "statement", "queryStatement",
3894
- "withClause", "namedQuery", "queryNoWith", "queryTerm", "queryPrimary",
3895
- "querySpecification", "setQuantifier", "selectItem", "fromClause",
3896
- "relation", "joinType", "aliasedRelation", "relationPrimary", "whereClause",
3897
- "groupByClause", "havingClause", "orderByClause", "sortItem", "limitClause",
3898
- "insertStatement", "columnList", "updateStatement", "updateAssignment",
3899
- "deleteStatement", "createTableStatement", "tableElement", "columnDefinition",
3900
- "tableConstraint", "alterTableStatement", "dropTableStatement",
3951
+ "withClause", "namedQuery", "cteColumnList", "queryNoWith", "queryTerm",
3952
+ "queryPrimary", "querySpecification", "setQuantifier", "selectItem",
3953
+ "fromClause", "relation", "joinType", "aliasedRelation", "relationPrimary",
3954
+ "whereClause", "groupByClause", "havingClause", "orderByClause",
3955
+ "sortItem", "limitClause", "insertStatement", "columnList", "updateStatement",
3956
+ "updateAssignment", "deleteStatement", "createTableStatement", "tableElement",
3957
+ "columnDefinition", "tableConstraint", "alterTableStatement", "dropTableStatement",
3901
3958
  "expression", "booleanExpression", "predicatedExpression", "predicate",
3902
3959
  "comparisonOperator", "valueExpression", "primaryExpression", "whenClause",
3903
3960
  "subqueryExpression", "dataType", "properties", "property", "literal",
@@ -3905,7 +3962,7 @@ GenericSqlParser.ruleNames = [
3905
3962
  "nonReserved",
3906
3963
  ];
3907
3964
  GenericSqlParser._serializedATN = [
3908
- 4, 1, 122, 801, 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,
3965
+ 4, 1, 122, 817, 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,
3909
3966
  7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7,
3910
3967
  13, 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,
3911
3968
  20, 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,
@@ -3913,305 +3970,311 @@ GenericSqlParser._serializedATN = [
3913
3970
  33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7,
3914
3971
  39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2,
3915
3972
  46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7,
3916
- 52, 2, 53, 7, 53, 1, 0, 5, 0, 110, 8, 0, 10, 0, 12, 0, 113, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1,
3917
- 2, 1, 2, 3, 2, 121, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 130, 8, 3, 1, 4, 3,
3918
- 4, 133, 8, 4, 1, 4, 1, 4, 1, 5, 1, 5, 3, 5, 139, 8, 5, 1, 5, 1, 5, 1, 5, 5, 5, 144, 8, 5, 10,
3919
- 5, 12, 5, 147, 9, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 3, 7, 158, 8, 7, 1,
3920
- 7, 5, 7, 161, 8, 7, 10, 7, 12, 7, 164, 9, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9,
3921
- 173, 8, 9, 1, 10, 1, 10, 3, 10, 177, 8, 10, 1, 10, 1, 10, 1, 10, 5, 10, 182, 8, 10, 10,
3922
- 10, 12, 10, 185, 9, 10, 1, 10, 3, 10, 188, 8, 10, 1, 10, 3, 10, 191, 8, 10, 1, 10, 3, 10,
3923
- 194, 8, 10, 1, 10, 3, 10, 197, 8, 10, 1, 10, 3, 10, 200, 8, 10, 1, 10, 3, 10, 203, 8, 10,
3924
- 1, 11, 1, 11, 1, 12, 1, 12, 3, 12, 209, 8, 12, 1, 12, 3, 12, 212, 8, 12, 1, 12, 1, 12, 1,
3925
- 12, 1, 12, 1, 12, 3, 12, 219, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 5, 13, 225, 8, 13, 10,
3926
- 13, 12, 13, 228, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1,
3927
- 14, 5, 14, 240, 8, 14, 10, 14, 12, 14, 243, 9, 14, 1, 15, 3, 15, 246, 8, 15, 1, 15, 1,
3928
- 15, 3, 15, 250, 8, 15, 1, 15, 1, 15, 3, 15, 254, 8, 15, 1, 15, 1, 15, 3, 15, 258, 8, 15,
3929
- 1, 15, 3, 15, 261, 8, 15, 1, 16, 1, 16, 3, 16, 265, 8, 16, 1, 16, 3, 16, 268, 8, 16, 1,
3930
- 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 275, 8, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1,
3931
- 19, 3, 19, 283, 8, 19, 1, 19, 1, 19, 1, 19, 5, 19, 288, 8, 19, 10, 19, 12, 19, 291, 9,
3932
- 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 301, 8, 21, 10, 21, 12,
3933
- 21, 304, 9, 21, 1, 22, 1, 22, 3, 22, 308, 8, 22, 1, 22, 1, 22, 3, 22, 312, 8, 22, 1, 23,
3934
- 1, 23, 1, 23, 1, 23, 3, 23, 318, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 324, 8, 24, 1,
3935
- 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 332, 8, 25, 10, 25, 12, 25, 335, 9, 25, 1,
3936
- 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 345, 8, 26, 10, 26, 12, 26,
3937
- 348, 9, 26, 1, 26, 3, 26, 351, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1,
3938
- 28, 3, 28, 361, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 368, 8, 29, 1, 29, 1, 29,
3939
- 1, 29, 1, 29, 1, 29, 5, 29, 375, 8, 29, 10, 29, 12, 29, 378, 9, 29, 1, 29, 1, 29, 1, 29,
3940
- 3, 29, 383, 8, 29, 1, 30, 1, 30, 3, 30, 387, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 393,
3941
- 8, 31, 1, 31, 1, 31, 3, 31, 397, 8, 31, 1, 31, 1, 31, 3, 31, 401, 8, 31, 1, 32, 1, 32, 3,
3942
- 32, 405, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 413, 8, 32, 10, 32, 12,
3943
- 32, 416, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 425, 8, 32, 10,
3944
- 32, 12, 32, 428, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
3945
- 32, 1, 32, 1, 32, 1, 32, 5, 32, 443, 8, 32, 10, 32, 12, 32, 446, 9, 32, 1, 32, 1, 32, 1,
3946
- 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 455, 8, 32, 10, 32, 12, 32, 458, 9, 32, 1, 32, 1,
3947
- 32, 3, 32, 462, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 468, 8, 33, 1, 33, 1, 33, 1, 33,
3948
- 1, 33, 1, 33, 1, 33, 3, 33, 476, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 483, 8,
3949
- 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1,
3950
- 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 502, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 508,
3951
- 8, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 518, 8, 36, 1, 36,
3952
- 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 5, 36, 526, 8, 36, 10, 36, 12, 36, 529, 9, 36, 1, 37,
3953
- 1, 37, 3, 37, 533, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 539, 8, 38, 1, 38, 1, 38, 1,
3954
- 38, 1, 38, 1, 38, 5, 38, 546, 8, 38, 10, 38, 12, 38, 549, 9, 38, 1, 38, 1, 38, 1, 38, 3,
3955
- 38, 554, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 562, 8, 38, 1, 38, 1, 38,
3956
- 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 570, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 576, 8,
3957
- 38, 1, 38, 1, 38, 3, 38, 580, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 585, 8, 38, 1, 38, 1, 38,
3958
- 1, 38, 3, 38, 590, 8, 38, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 598, 8, 40, 1,
3959
- 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 5, 40, 609, 8, 40, 10, 40, 12,
3960
- 40, 612, 9, 40, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 618, 8, 41, 1, 41, 1, 41, 1, 41, 5, 41,
3961
- 623, 8, 41, 10, 41, 12, 41, 626, 9, 41, 3, 41, 628, 8, 41, 1, 41, 1, 41, 1, 41, 1, 41,
3962
- 4, 41, 634, 8, 41, 11, 41, 12, 41, 635, 1, 41, 1, 41, 3, 41, 640, 8, 41, 1, 41, 1, 41,
3963
- 1, 41, 1, 41, 1, 41, 4, 41, 647, 8, 41, 11, 41, 12, 41, 648, 1, 41, 1, 41, 3, 41, 653,
3964
- 8, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41,
3965
- 1, 41, 1, 41, 5, 41, 669, 8, 41, 10, 41, 12, 41, 672, 9, 41, 1, 41, 1, 41, 1, 41, 1, 41,
3966
- 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41,
3967
- 1, 41, 1, 41, 1, 41, 3, 41, 694, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43,
3968
- 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44,
3969
- 1, 44, 1, 44, 3, 44, 718, 8, 44, 1, 44, 3, 44, 721, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1,
3970
- 44, 3, 44, 728, 8, 44, 1, 44, 3, 44, 731, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 737,
3971
- 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 743, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44,
3972
- 1, 44, 3, 44, 751, 8, 44, 1, 45, 1, 45, 1, 45, 1, 45, 5, 45, 757, 8, 45, 10, 45, 12, 45,
3973
- 760, 9, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47,
3974
- 1, 47, 1, 47, 1, 47, 3, 47, 776, 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 783, 8,
3975
- 48, 1, 49, 1, 49, 1, 49, 5, 49, 788, 8, 49, 10, 49, 12, 49, 791, 9, 49, 1, 50, 1, 50, 1,
3976
- 51, 1, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 0, 3, 28, 72, 80, 54, 0, 2, 4, 6, 8, 10, 12,
3977
- 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
3978
- 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
3979
- 102, 104, 106, 0, 8, 3, 0, 36, 36, 52, 52, 87, 87, 2, 0, 6, 6, 30, 30, 2, 0, 10, 10, 29,
3980
- 29, 2, 0, 39, 39, 57, 57, 1, 0, 95, 100, 1, 0, 101, 102, 1, 0, 103, 105, 22, 0, 5, 6, 10,
3981
- 10, 12, 15, 18, 18, 20, 21, 24, 27, 29, 29, 31, 31, 38, 40, 43, 43, 46, 46, 50, 51, 56,
3982
- 58, 60, 60, 63, 66, 70, 70, 75, 75, 78, 78, 80, 80, 82, 86, 88, 88, 90, 91, 895, 0, 111,
3983
- 1, 0, 0, 0, 2, 116, 1, 0, 0, 0, 4, 118, 1, 0, 0, 0, 6, 129, 1, 0, 0, 0, 8, 132, 1, 0, 0, 0,
3984
- 10, 136, 1, 0, 0, 0, 12, 148, 1, 0, 0, 0, 14, 154, 1, 0, 0, 0, 16, 165, 1, 0, 0, 0, 18, 172,
3985
- 1, 0, 0, 0, 20, 174, 1, 0, 0, 0, 22, 204, 1, 0, 0, 0, 24, 218, 1, 0, 0, 0, 26, 220, 1, 0,
3986
- 0, 0, 28, 229, 1, 0, 0, 0, 30, 260, 1, 0, 0, 0, 32, 262, 1, 0, 0, 0, 34, 274, 1, 0, 0, 0,
3987
- 36, 276, 1, 0, 0, 0, 38, 279, 1, 0, 0, 0, 40, 292, 1, 0, 0, 0, 42, 295, 1, 0, 0, 0, 44, 305,
3988
- 1, 0, 0, 0, 46, 313, 1, 0, 0, 0, 48, 319, 1, 0, 0, 0, 50, 327, 1, 0, 0, 0, 52, 338, 1, 0,
3989
- 0, 0, 54, 352, 1, 0, 0, 0, 56, 356, 1, 0, 0, 0, 58, 362, 1, 0, 0, 0, 60, 386, 1, 0, 0, 0,
3990
- 62, 388, 1, 0, 0, 0, 64, 404, 1, 0, 0, 0, 66, 463, 1, 0, 0, 0, 68, 503, 1, 0, 0, 0, 70, 511,
3991
- 1, 0, 0, 0, 72, 517, 1, 0, 0, 0, 74, 530, 1, 0, 0, 0, 76, 589, 1, 0, 0, 0, 78, 591, 1, 0,
3992
- 0, 0, 80, 597, 1, 0, 0, 0, 82, 693, 1, 0, 0, 0, 84, 695, 1, 0, 0, 0, 86, 700, 1, 0, 0, 0,
3993
- 88, 750, 1, 0, 0, 0, 90, 752, 1, 0, 0, 0, 92, 763, 1, 0, 0, 0, 94, 775, 1, 0, 0, 0, 96, 782,
3994
- 1, 0, 0, 0, 98, 784, 1, 0, 0, 0, 100, 792, 1, 0, 0, 0, 102, 794, 1, 0, 0, 0, 104, 796, 1,
3995
- 0, 0, 0, 106, 798, 1, 0, 0, 0, 108, 110, 3, 2, 1, 0, 109, 108, 1, 0, 0, 0, 110, 113, 1,
3996
- 0, 0, 0, 111, 109, 1, 0, 0, 0, 111, 112, 1, 0, 0, 0, 112, 114, 1, 0, 0, 0, 113, 111, 1,
3997
- 0, 0, 0, 114, 115, 5, 0, 0, 1, 115, 1, 1, 0, 0, 0, 116, 117, 3, 4, 2, 0, 117, 3, 1, 0, 0,
3998
- 0, 118, 120, 3, 6, 3, 0, 119, 121, 5, 108, 0, 0, 120, 119, 1, 0, 0, 0, 120, 121, 1, 0,
3999
- 0, 0, 121, 5, 1, 0, 0, 0, 122, 130, 3, 8, 4, 0, 123, 130, 3, 48, 24, 0, 124, 130, 3, 52,
4000
- 26, 0, 125, 130, 3, 56, 28, 0, 126, 130, 3, 58, 29, 0, 127, 130, 3, 66, 33, 0, 128, 130,
4001
- 3, 68, 34, 0, 129, 122, 1, 0, 0, 0, 129, 123, 1, 0, 0, 0, 129, 124, 1, 0, 0, 0, 129, 125,
4002
- 1, 0, 0, 0, 129, 126, 1, 0, 0, 0, 129, 127, 1, 0, 0, 0, 129, 128, 1, 0, 0, 0, 130, 7, 1,
4003
- 0, 0, 0, 131, 133, 3, 10, 5, 0, 132, 131, 1, 0, 0, 0, 132, 133, 1, 0, 0, 0, 133, 134, 1,
4004
- 0, 0, 0, 134, 135, 3, 14, 7, 0, 135, 9, 1, 0, 0, 0, 136, 138, 5, 94, 0, 0, 137, 139, 5,
4005
- 72, 0, 0, 138, 137, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 145, 3,
4006
- 12, 6, 0, 141, 142, 5, 1, 0, 0, 142, 144, 3, 12, 6, 0, 143, 141, 1, 0, 0, 0, 144, 147,
4007
- 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 11, 1, 0, 0, 0, 147, 145, 1,
4008
- 0, 0, 0, 148, 149, 3, 96, 48, 0, 149, 150, 5, 9, 0, 0, 150, 151, 5, 2, 0, 0, 151, 152,
4009
- 3, 8, 4, 0, 152, 153, 5, 3, 0, 0, 153, 13, 1, 0, 0, 0, 154, 162, 3, 16, 8, 0, 155, 157,
4010
- 7, 0, 0, 0, 156, 158, 5, 6, 0, 0, 157, 156, 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 159,
4011
- 1, 0, 0, 0, 159, 161, 3, 16, 8, 0, 160, 155, 1, 0, 0, 0, 161, 164, 1, 0, 0, 0, 162, 160,
4012
- 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 15, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 165, 166, 3,
4013
- 18, 9, 0, 166, 17, 1, 0, 0, 0, 167, 173, 3, 20, 10, 0, 168, 169, 5, 2, 0, 0, 169, 170,
4014
- 3, 8, 4, 0, 170, 171, 5, 3, 0, 0, 171, 173, 1, 0, 0, 0, 172, 167, 1, 0, 0, 0, 172, 168,
4015
- 1, 0, 0, 0, 173, 19, 1, 0, 0, 0, 174, 176, 5, 76, 0, 0, 175, 177, 3, 22, 11, 0, 176, 175,
4016
- 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 183, 3, 24, 12, 0, 179, 180,
4017
- 5, 1, 0, 0, 180, 182, 3, 24, 12, 0, 181, 179, 1, 0, 0, 0, 182, 185, 1, 0, 0, 0, 183, 181,
4018
- 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 187, 1, 0, 0, 0, 185, 183, 1, 0, 0, 0, 186, 188,
4019
- 3, 26, 13, 0, 187, 186, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 190, 1, 0, 0, 0, 189, 191,
4020
- 3, 36, 18, 0, 190, 189, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 193, 1, 0, 0, 0, 192, 194,
4021
- 3, 38, 19, 0, 193, 192, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 196, 1, 0, 0, 0, 195, 197,
4022
- 3, 40, 20, 0, 196, 195, 1, 0, 0, 0, 196, 197, 1, 0, 0, 0, 197, 199, 1, 0, 0, 0, 198, 200,
4023
- 3, 42, 21, 0, 199, 198, 1, 0, 0, 0, 199, 200, 1, 0, 0, 0, 200, 202, 1, 0, 0, 0, 201, 203,
4024
- 3, 46, 23, 0, 202, 201, 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 21, 1, 0, 0, 0, 204, 205,
4025
- 7, 1, 0, 0, 205, 23, 1, 0, 0, 0, 206, 211, 3, 70, 35, 0, 207, 209, 5, 9, 0, 0, 208, 207,
4026
- 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 212, 3, 96, 48, 0, 211, 208,
4027
- 1, 0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 219, 1, 0, 0, 0, 213, 214, 3, 98, 49, 0, 214, 215,
4028
- 5, 4, 0, 0, 215, 216, 5, 103, 0, 0, 216, 219, 1, 0, 0, 0, 217, 219, 5, 103, 0, 0, 218,
4029
- 206, 1, 0, 0, 0, 218, 213, 1, 0, 0, 0, 218, 217, 1, 0, 0, 0, 219, 25, 1, 0, 0, 0, 220, 221,
4030
- 5, 42, 0, 0, 221, 226, 3, 28, 14, 0, 222, 223, 5, 1, 0, 0, 223, 225, 3, 28, 14, 0, 224,
4031
- 222, 1, 0, 0, 0, 225, 228, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 226, 227, 1, 0, 0, 0, 227,
4032
- 27, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 229, 230, 6, 14, -1, 0, 230, 231, 3, 32, 16, 0, 231,
4033
- 241, 1, 0, 0, 0, 232, 233, 10, 2, 0, 0, 233, 234, 3, 30, 15, 0, 234, 235, 5, 55, 0, 0,
4034
- 235, 236, 3, 28, 14, 0, 236, 237, 5, 67, 0, 0, 237, 238, 3, 70, 35, 0, 238, 240, 1, 0,
4035
- 0, 0, 239, 232, 1, 0, 0, 0, 240, 243, 1, 0, 0, 0, 241, 239, 1, 0, 0, 0, 241, 242, 1, 0,
4036
- 0, 0, 242, 29, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 244, 246, 5, 48, 0, 0, 245, 244, 1, 0,
4037
- 0, 0, 245, 246, 1, 0, 0, 0, 246, 261, 1, 0, 0, 0, 247, 249, 5, 58, 0, 0, 248, 250, 5, 70,
4038
- 0, 0, 249, 248, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 261, 1, 0, 0, 0, 251, 253, 5, 75,
4039
- 0, 0, 252, 254, 5, 70, 0, 0, 253, 252, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 261, 1, 0,
4040
- 0, 0, 255, 257, 5, 43, 0, 0, 256, 258, 5, 70, 0, 0, 257, 256, 1, 0, 0, 0, 257, 258, 1,
4041
- 0, 0, 0, 258, 261, 1, 0, 0, 0, 259, 261, 5, 24, 0, 0, 260, 245, 1, 0, 0, 0, 260, 247, 1,
4042
- 0, 0, 0, 260, 251, 1, 0, 0, 0, 260, 255, 1, 0, 0, 0, 260, 259, 1, 0, 0, 0, 261, 31, 1, 0,
4043
- 0, 0, 262, 267, 3, 34, 17, 0, 263, 265, 5, 9, 0, 0, 264, 263, 1, 0, 0, 0, 264, 265, 1,
4044
- 0, 0, 0, 265, 266, 1, 0, 0, 0, 266, 268, 3, 96, 48, 0, 267, 264, 1, 0, 0, 0, 267, 268,
4045
- 1, 0, 0, 0, 268, 33, 1, 0, 0, 0, 269, 275, 3, 102, 51, 0, 270, 271, 5, 2, 0, 0, 271, 272,
4046
- 3, 8, 4, 0, 272, 273, 5, 3, 0, 0, 273, 275, 1, 0, 0, 0, 274, 269, 1, 0, 0, 0, 274, 270,
4047
- 1, 0, 0, 0, 275, 35, 1, 0, 0, 0, 276, 277, 5, 93, 0, 0, 277, 278, 3, 70, 35, 0, 278, 37,
4048
- 1, 0, 0, 0, 279, 280, 5, 44, 0, 0, 280, 282, 5, 15, 0, 0, 281, 283, 3, 22, 11, 0, 282,
4049
- 281, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 289, 3, 70, 35, 0, 285,
4050
- 286, 5, 1, 0, 0, 286, 288, 3, 70, 35, 0, 287, 285, 1, 0, 0, 0, 288, 291, 1, 0, 0, 0, 289,
4051
- 287, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 39, 1, 0, 0, 0, 291, 289, 1, 0, 0, 0, 292, 293,
4052
- 5, 45, 0, 0, 293, 294, 3, 70, 35, 0, 294, 41, 1, 0, 0, 0, 295, 296, 5, 69, 0, 0, 296, 297,
4053
- 5, 15, 0, 0, 297, 302, 3, 44, 22, 0, 298, 299, 5, 1, 0, 0, 299, 301, 3, 44, 22, 0, 300,
4054
- 298, 1, 0, 0, 0, 301, 304, 1, 0, 0, 0, 302, 300, 1, 0, 0, 0, 302, 303, 1, 0, 0, 0, 303,
4055
- 43, 1, 0, 0, 0, 304, 302, 1, 0, 0, 0, 305, 307, 3, 70, 35, 0, 306, 308, 7, 2, 0, 0, 307,
4056
- 306, 1, 0, 0, 0, 307, 308, 1, 0, 0, 0, 308, 311, 1, 0, 0, 0, 309, 310, 5, 64, 0, 0, 310,
4057
- 312, 7, 3, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 45, 1, 0, 0, 0, 313, 314,
4058
- 5, 60, 0, 0, 314, 317, 3, 70, 35, 0, 315, 316, 5, 66, 0, 0, 316, 318, 3, 70, 35, 0, 317,
4059
- 315, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 47, 1, 0, 0, 0, 319, 320, 5, 49, 0, 0, 320,
4060
- 321, 5, 53, 0, 0, 321, 323, 3, 102, 51, 0, 322, 324, 3, 50, 25, 0, 323, 322, 1, 0, 0,
4061
- 0, 323, 324, 1, 0, 0, 0, 324, 325, 1, 0, 0, 0, 325, 326, 3, 8, 4, 0, 326, 49, 1, 0, 0, 0,
4062
- 327, 328, 5, 2, 0, 0, 328, 333, 3, 100, 50, 0, 329, 330, 5, 1, 0, 0, 330, 332, 3, 100,
4063
- 50, 0, 331, 329, 1, 0, 0, 0, 332, 335, 1, 0, 0, 0, 333, 331, 1, 0, 0, 0, 333, 334, 1, 0,
4064
- 0, 0, 334, 336, 1, 0, 0, 0, 335, 333, 1, 0, 0, 0, 336, 337, 5, 3, 0, 0, 337, 51, 1, 0, 0,
4065
- 0, 338, 339, 5, 89, 0, 0, 339, 340, 3, 102, 51, 0, 340, 341, 5, 77, 0, 0, 341, 346, 3,
4066
- 54, 27, 0, 342, 343, 5, 1, 0, 0, 343, 345, 3, 54, 27, 0, 344, 342, 1, 0, 0, 0, 345, 348,
4067
- 1, 0, 0, 0, 346, 344, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 350, 1, 0, 0, 0, 348, 346,
4068
- 1, 0, 0, 0, 349, 351, 3, 36, 18, 0, 350, 349, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 53,
4069
- 1, 0, 0, 0, 352, 353, 3, 100, 50, 0, 353, 354, 5, 95, 0, 0, 354, 355, 3, 70, 35, 0, 355,
4070
- 55, 1, 0, 0, 0, 356, 357, 5, 28, 0, 0, 357, 358, 5, 42, 0, 0, 358, 360, 3, 102, 51, 0,
4071
- 359, 361, 3, 36, 18, 0, 360, 359, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 57, 1, 0, 0, 0,
4072
- 362, 363, 5, 23, 0, 0, 363, 367, 5, 79, 0, 0, 364, 365, 5, 46, 0, 0, 365, 366, 5, 61,
4073
- 0, 0, 366, 368, 5, 37, 0, 0, 367, 364, 1, 0, 0, 0, 367, 368, 1, 0, 0, 0, 368, 369, 1, 0,
4074
- 0, 0, 369, 370, 3, 104, 52, 0, 370, 371, 5, 2, 0, 0, 371, 376, 3, 60, 30, 0, 372, 373,
4075
- 5, 1, 0, 0, 373, 375, 3, 60, 30, 0, 374, 372, 1, 0, 0, 0, 375, 378, 1, 0, 0, 0, 376, 374,
4076
- 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 379, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 379, 382,
4077
- 5, 3, 0, 0, 380, 381, 5, 94, 0, 0, 381, 383, 3, 90, 45, 0, 382, 380, 1, 0, 0, 0, 382, 383,
4078
- 1, 0, 0, 0, 383, 59, 1, 0, 0, 0, 384, 387, 3, 62, 31, 0, 385, 387, 3, 64, 32, 0, 386, 384,
4079
- 1, 0, 0, 0, 386, 385, 1, 0, 0, 0, 387, 61, 1, 0, 0, 0, 388, 389, 3, 100, 50, 0, 389, 392,
4080
- 3, 88, 44, 0, 390, 391, 5, 61, 0, 0, 391, 393, 5, 62, 0, 0, 392, 390, 1, 0, 0, 0, 392,
4081
- 393, 1, 0, 0, 0, 393, 396, 1, 0, 0, 0, 394, 395, 5, 27, 0, 0, 395, 397, 3, 70, 35, 0, 396,
4082
- 394, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 400, 1, 0, 0, 0, 398, 399, 5, 71, 0, 0, 399,
4083
- 401, 5, 56, 0, 0, 400, 398, 1, 0, 0, 0, 400, 401, 1, 0, 0, 0, 401, 63, 1, 0, 0, 0, 402,
4084
- 403, 5, 22, 0, 0, 403, 405, 3, 96, 48, 0, 404, 402, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405,
4085
- 461, 1, 0, 0, 0, 406, 407, 5, 71, 0, 0, 407, 408, 5, 56, 0, 0, 408, 409, 5, 2, 0, 0, 409,
4086
- 414, 3, 100, 50, 0, 410, 411, 5, 1, 0, 0, 411, 413, 3, 100, 50, 0, 412, 410, 1, 0, 0,
4087
- 0, 413, 416, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 417, 1, 0, 0,
4088
- 0, 416, 414, 1, 0, 0, 0, 417, 418, 5, 3, 0, 0, 418, 462, 1, 0, 0, 0, 419, 420, 5, 88, 0,
4089
- 0, 420, 421, 5, 2, 0, 0, 421, 426, 3, 100, 50, 0, 422, 423, 5, 1, 0, 0, 423, 425, 3, 100,
4090
- 50, 0, 424, 422, 1, 0, 0, 0, 425, 428, 1, 0, 0, 0, 426, 424, 1, 0, 0, 0, 426, 427, 1, 0,
4091
- 0, 0, 427, 429, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 429, 430, 5, 3, 0, 0, 430, 462, 1, 0,
4092
- 0, 0, 431, 432, 5, 19, 0, 0, 432, 433, 5, 2, 0, 0, 433, 434, 3, 70, 35, 0, 434, 435, 5,
4093
- 3, 0, 0, 435, 462, 1, 0, 0, 0, 436, 437, 5, 41, 0, 0, 437, 438, 5, 56, 0, 0, 438, 439,
4094
- 5, 2, 0, 0, 439, 444, 3, 100, 50, 0, 440, 441, 5, 1, 0, 0, 441, 443, 3, 100, 50, 0, 442,
4095
- 440, 1, 0, 0, 0, 443, 446, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445,
4096
- 447, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 447, 448, 5, 3, 0, 0, 448, 449, 5, 73, 0, 0, 449,
4097
- 450, 3, 102, 51, 0, 450, 451, 5, 2, 0, 0, 451, 456, 3, 100, 50, 0, 452, 453, 5, 1, 0,
4098
- 0, 453, 455, 3, 100, 50, 0, 454, 452, 1, 0, 0, 0, 455, 458, 1, 0, 0, 0, 456, 454, 1, 0,
4099
- 0, 0, 456, 457, 1, 0, 0, 0, 457, 459, 1, 0, 0, 0, 458, 456, 1, 0, 0, 0, 459, 460, 5, 3,
4100
- 0, 0, 460, 462, 1, 0, 0, 0, 461, 406, 1, 0, 0, 0, 461, 419, 1, 0, 0, 0, 461, 431, 1, 0,
4101
- 0, 0, 461, 436, 1, 0, 0, 0, 462, 65, 1, 0, 0, 0, 463, 464, 5, 7, 0, 0, 464, 467, 5, 79,
4102
- 0, 0, 465, 466, 5, 46, 0, 0, 466, 468, 5, 37, 0, 0, 467, 465, 1, 0, 0, 0, 467, 468, 1,
4103
- 0, 0, 0, 468, 469, 1, 0, 0, 0, 469, 501, 3, 102, 51, 0, 470, 471, 5, 5, 0, 0, 471, 475,
4104
- 5, 21, 0, 0, 472, 473, 5, 46, 0, 0, 473, 474, 5, 61, 0, 0, 474, 476, 5, 37, 0, 0, 475,
4105
- 472, 1, 0, 0, 0, 475, 476, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 502, 3, 62, 31, 0, 478,
4106
- 479, 5, 32, 0, 0, 479, 482, 5, 21, 0, 0, 480, 481, 5, 46, 0, 0, 481, 483, 5, 37, 0, 0,
4107
- 482, 480, 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 502, 3, 100, 50,
4108
- 0, 485, 486, 5, 74, 0, 0, 486, 487, 5, 85, 0, 0, 487, 502, 3, 104, 52, 0, 488, 489, 5,
4109
- 7, 0, 0, 489, 490, 5, 21, 0, 0, 490, 491, 3, 100, 50, 0, 491, 492, 5, 77, 0, 0, 492, 493,
4110
- 5, 27, 0, 0, 493, 494, 3, 70, 35, 0, 494, 502, 1, 0, 0, 0, 495, 496, 5, 7, 0, 0, 496, 497,
4111
- 5, 21, 0, 0, 497, 498, 3, 100, 50, 0, 498, 499, 5, 32, 0, 0, 499, 500, 5, 27, 0, 0, 500,
4112
- 502, 1, 0, 0, 0, 501, 470, 1, 0, 0, 0, 501, 478, 1, 0, 0, 0, 501, 485, 1, 0, 0, 0, 501,
4113
- 488, 1, 0, 0, 0, 501, 495, 1, 0, 0, 0, 502, 67, 1, 0, 0, 0, 503, 504, 5, 32, 0, 0, 504,
4114
- 507, 5, 79, 0, 0, 505, 506, 5, 46, 0, 0, 506, 508, 5, 37, 0, 0, 507, 505, 1, 0, 0, 0, 507,
4115
- 508, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509, 510, 3, 102, 51, 0, 510, 69, 1, 0, 0, 0, 511,
4116
- 512, 3, 72, 36, 0, 512, 71, 1, 0, 0, 0, 513, 514, 6, 36, -1, 0, 514, 518, 3, 74, 37, 0,
4117
- 515, 516, 5, 61, 0, 0, 516, 518, 3, 72, 36, 3, 517, 513, 1, 0, 0, 0, 517, 515, 1, 0, 0,
4118
- 0, 518, 527, 1, 0, 0, 0, 519, 520, 10, 2, 0, 0, 520, 521, 5, 8, 0, 0, 521, 526, 3, 72,
4119
- 36, 3, 522, 523, 10, 1, 0, 0, 523, 524, 5, 68, 0, 0, 524, 526, 3, 72, 36, 2, 525, 519,
4120
- 1, 0, 0, 0, 525, 522, 1, 0, 0, 0, 526, 529, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 527, 528,
4121
- 1, 0, 0, 0, 528, 73, 1, 0, 0, 0, 529, 527, 1, 0, 0, 0, 530, 532, 3, 80, 40, 0, 531, 533,
4122
- 3, 76, 38, 0, 532, 531, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0, 533, 75, 1, 0, 0, 0, 534, 535,
4123
- 3, 78, 39, 0, 535, 536, 3, 80, 40, 0, 536, 590, 1, 0, 0, 0, 537, 539, 5, 61, 0, 0, 538,
4124
- 537, 1, 0, 0, 0, 538, 539, 1, 0, 0, 0, 539, 540, 1, 0, 0, 0, 540, 541, 5, 47, 0, 0, 541,
4125
- 542, 5, 2, 0, 0, 542, 547, 3, 70, 35, 0, 543, 544, 5, 1, 0, 0, 544, 546, 3, 70, 35, 0,
4126
- 545, 543, 1, 0, 0, 0, 546, 549, 1, 0, 0, 0, 547, 545, 1, 0, 0, 0, 547, 548, 1, 0, 0, 0,
4127
- 548, 550, 1, 0, 0, 0, 549, 547, 1, 0, 0, 0, 550, 551, 5, 3, 0, 0, 551, 590, 1, 0, 0, 0,
4128
- 552, 554, 5, 61, 0, 0, 553, 552, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0,
4129
- 555, 556, 5, 47, 0, 0, 556, 557, 5, 2, 0, 0, 557, 558, 3, 8, 4, 0, 558, 559, 5, 3, 0, 0,
4130
- 559, 590, 1, 0, 0, 0, 560, 562, 5, 61, 0, 0, 561, 560, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0,
4131
- 562, 563, 1, 0, 0, 0, 563, 564, 5, 11, 0, 0, 564, 565, 3, 80, 40, 0, 565, 566, 5, 8, 0,
4132
- 0, 566, 567, 3, 80, 40, 0, 567, 590, 1, 0, 0, 0, 568, 570, 5, 61, 0, 0, 569, 568, 1, 0,
4133
- 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 572, 5, 59, 0, 0, 572, 575, 3, 80,
4134
- 40, 0, 573, 574, 5, 35, 0, 0, 574, 576, 3, 80, 40, 0, 575, 573, 1, 0, 0, 0, 575, 576,
4135
- 1, 0, 0, 0, 576, 590, 1, 0, 0, 0, 577, 579, 5, 54, 0, 0, 578, 580, 5, 61, 0, 0, 579, 578,
4136
- 1, 0, 0, 0, 579, 580, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 590, 5, 62, 0, 0, 582, 584,
4137
- 5, 54, 0, 0, 583, 585, 5, 61, 0, 0, 584, 583, 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, 586,
4138
- 1, 0, 0, 0, 586, 587, 5, 30, 0, 0, 587, 588, 5, 42, 0, 0, 588, 590, 3, 80, 40, 0, 589,
4139
- 534, 1, 0, 0, 0, 589, 538, 1, 0, 0, 0, 589, 553, 1, 0, 0, 0, 589, 561, 1, 0, 0, 0, 589,
4140
- 569, 1, 0, 0, 0, 589, 577, 1, 0, 0, 0, 589, 582, 1, 0, 0, 0, 590, 77, 1, 0, 0, 0, 591, 592,
4141
- 7, 4, 0, 0, 592, 79, 1, 0, 0, 0, 593, 594, 6, 40, -1, 0, 594, 598, 3, 82, 41, 0, 595, 596,
4142
- 7, 5, 0, 0, 596, 598, 3, 80, 40, 4, 597, 593, 1, 0, 0, 0, 597, 595, 1, 0, 0, 0, 598, 610,
4143
- 1, 0, 0, 0, 599, 600, 10, 3, 0, 0, 600, 601, 7, 6, 0, 0, 601, 609, 3, 80, 40, 4, 602, 603,
4144
- 10, 2, 0, 0, 603, 604, 7, 5, 0, 0, 604, 609, 3, 80, 40, 3, 605, 606, 10, 1, 0, 0, 606,
4145
- 607, 5, 106, 0, 0, 607, 609, 3, 80, 40, 2, 608, 599, 1, 0, 0, 0, 608, 602, 1, 0, 0, 0,
4146
- 608, 605, 1, 0, 0, 0, 609, 612, 1, 0, 0, 0, 610, 608, 1, 0, 0, 0, 610, 611, 1, 0, 0, 0,
4147
- 611, 81, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 613, 694, 3, 94, 47, 0, 614, 615, 3, 98, 49,
4148
- 0, 615, 627, 5, 2, 0, 0, 616, 618, 3, 22, 11, 0, 617, 616, 1, 0, 0, 0, 617, 618, 1, 0,
4149
- 0, 0, 618, 619, 1, 0, 0, 0, 619, 624, 3, 70, 35, 0, 620, 621, 5, 1, 0, 0, 621, 623, 3,
4150
- 70, 35, 0, 622, 620, 1, 0, 0, 0, 623, 626, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 624, 625,
4151
- 1, 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 627, 617, 1, 0, 0, 0, 627, 628,
4152
- 1, 0, 0, 0, 628, 629, 1, 0, 0, 0, 629, 630, 5, 3, 0, 0, 630, 694, 1, 0, 0, 0, 631, 633,
4153
- 5, 16, 0, 0, 632, 634, 3, 84, 42, 0, 633, 632, 1, 0, 0, 0, 634, 635, 1, 0, 0, 0, 635, 633,
4154
- 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 639, 1, 0, 0, 0, 637, 638, 5, 33, 0, 0, 638, 640,
4155
- 3, 70, 35, 0, 639, 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 641, 1, 0, 0, 0, 641, 642,
4156
- 5, 34, 0, 0, 642, 694, 1, 0, 0, 0, 643, 644, 5, 16, 0, 0, 644, 646, 3, 70, 35, 0, 645,
4157
- 647, 3, 84, 42, 0, 646, 645, 1, 0, 0, 0, 647, 648, 1, 0, 0, 0, 648, 646, 1, 0, 0, 0, 648,
4158
- 649, 1, 0, 0, 0, 649, 652, 1, 0, 0, 0, 650, 651, 5, 33, 0, 0, 651, 653, 3, 70, 35, 0, 652,
4159
- 650, 1, 0, 0, 0, 652, 653, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 655, 5, 34, 0, 0, 655,
4160
- 694, 1, 0, 0, 0, 656, 657, 5, 17, 0, 0, 657, 658, 5, 2, 0, 0, 658, 659, 3, 70, 35, 0, 659,
4161
- 660, 5, 9, 0, 0, 660, 661, 3, 88, 44, 0, 661, 662, 5, 3, 0, 0, 662, 694, 1, 0, 0, 0, 663,
4162
- 664, 5, 20, 0, 0, 664, 665, 5, 2, 0, 0, 665, 670, 3, 70, 35, 0, 666, 667, 5, 1, 0, 0, 667,
4163
- 669, 3, 70, 35, 0, 668, 666, 1, 0, 0, 0, 669, 672, 1, 0, 0, 0, 670, 668, 1, 0, 0, 0, 670,
4164
- 671, 1, 0, 0, 0, 671, 673, 1, 0, 0, 0, 672, 670, 1, 0, 0, 0, 673, 674, 5, 3, 0, 0, 674,
4165
- 694, 1, 0, 0, 0, 675, 676, 5, 63, 0, 0, 676, 677, 5, 2, 0, 0, 677, 678, 3, 80, 40, 0, 678,
4166
- 679, 5, 1, 0, 0, 679, 680, 3, 80, 40, 0, 680, 681, 5, 3, 0, 0, 681, 694, 1, 0, 0, 0, 682,
4167
- 683, 5, 2, 0, 0, 683, 684, 3, 70, 35, 0, 684, 685, 5, 3, 0, 0, 685, 694, 1, 0, 0, 0, 686,
4168
- 687, 5, 37, 0, 0, 687, 688, 5, 2, 0, 0, 688, 689, 3, 8, 4, 0, 689, 690, 5, 3, 0, 0, 690,
4169
- 694, 1, 0, 0, 0, 691, 694, 3, 86, 43, 0, 692, 694, 3, 98, 49, 0, 693, 613, 1, 0, 0, 0,
4170
- 693, 614, 1, 0, 0, 0, 693, 631, 1, 0, 0, 0, 693, 643, 1, 0, 0, 0, 693, 656, 1, 0, 0, 0,
4171
- 693, 663, 1, 0, 0, 0, 693, 675, 1, 0, 0, 0, 693, 682, 1, 0, 0, 0, 693, 686, 1, 0, 0, 0,
4172
- 693, 691, 1, 0, 0, 0, 693, 692, 1, 0, 0, 0, 694, 83, 1, 0, 0, 0, 695, 696, 5, 92, 0, 0,
4173
- 696, 697, 3, 70, 35, 0, 697, 698, 5, 81, 0, 0, 698, 699, 3, 70, 35, 0, 699, 85, 1, 0,
4174
- 0, 0, 700, 701, 5, 2, 0, 0, 701, 702, 3, 8, 4, 0, 702, 703, 5, 3, 0, 0, 703, 87, 1, 0, 0,
4175
- 0, 704, 751, 5, 14, 0, 0, 705, 751, 5, 84, 0, 0, 706, 751, 5, 78, 0, 0, 707, 751, 5, 50,
4176
- 0, 0, 708, 751, 5, 51, 0, 0, 709, 751, 5, 12, 0, 0, 710, 751, 5, 40, 0, 0, 711, 751, 5,
4177
- 31, 0, 0, 712, 720, 5, 26, 0, 0, 713, 714, 5, 2, 0, 0, 714, 717, 5, 111, 0, 0, 715, 716,
4178
- 5, 1, 0, 0, 716, 718, 5, 111, 0, 0, 717, 715, 1, 0, 0, 0, 717, 718, 1, 0, 0, 0, 718, 719,
4179
- 1, 0, 0, 0, 719, 721, 5, 3, 0, 0, 720, 713, 1, 0, 0, 0, 720, 721, 1, 0, 0, 0, 721, 751,
4180
- 1, 0, 0, 0, 722, 730, 5, 65, 0, 0, 723, 724, 5, 2, 0, 0, 724, 727, 5, 111, 0, 0, 725, 726,
4181
- 5, 1, 0, 0, 726, 728, 5, 111, 0, 0, 727, 725, 1, 0, 0, 0, 727, 728, 1, 0, 0, 0, 728, 729,
4182
- 1, 0, 0, 0, 729, 731, 5, 3, 0, 0, 730, 723, 1, 0, 0, 0, 730, 731, 1, 0, 0, 0, 731, 751,
4183
- 1, 0, 0, 0, 732, 736, 5, 90, 0, 0, 733, 734, 5, 2, 0, 0, 734, 735, 5, 111, 0, 0, 735, 737,
4184
- 5, 3, 0, 0, 736, 733, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 751, 1, 0, 0, 0, 738, 742,
4185
- 5, 18, 0, 0, 739, 740, 5, 2, 0, 0, 740, 741, 5, 111, 0, 0, 741, 743, 5, 3, 0, 0, 742, 739,
4186
- 1, 0, 0, 0, 742, 743, 1, 0, 0, 0, 743, 751, 1, 0, 0, 0, 744, 751, 5, 80, 0, 0, 745, 751,
4187
- 5, 25, 0, 0, 746, 751, 5, 82, 0, 0, 747, 751, 5, 83, 0, 0, 748, 751, 5, 13, 0, 0, 749,
4188
- 751, 5, 91, 0, 0, 750, 704, 1, 0, 0, 0, 750, 705, 1, 0, 0, 0, 750, 706, 1, 0, 0, 0, 750,
4189
- 707, 1, 0, 0, 0, 750, 708, 1, 0, 0, 0, 750, 709, 1, 0, 0, 0, 750, 710, 1, 0, 0, 0, 750,
4190
- 711, 1, 0, 0, 0, 750, 712, 1, 0, 0, 0, 750, 722, 1, 0, 0, 0, 750, 732, 1, 0, 0, 0, 750,
4191
- 738, 1, 0, 0, 0, 750, 744, 1, 0, 0, 0, 750, 745, 1, 0, 0, 0, 750, 746, 1, 0, 0, 0, 750,
4192
- 747, 1, 0, 0, 0, 750, 748, 1, 0, 0, 0, 750, 749, 1, 0, 0, 0, 751, 89, 1, 0, 0, 0, 752, 753,
4193
- 5, 2, 0, 0, 753, 758, 3, 92, 46, 0, 754, 755, 5, 1, 0, 0, 755, 757, 3, 92, 46, 0, 756,
4194
- 754, 1, 0, 0, 0, 757, 760, 1, 0, 0, 0, 758, 756, 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759,
4195
- 761, 1, 0, 0, 0, 760, 758, 1, 0, 0, 0, 761, 762, 5, 3, 0, 0, 762, 91, 1, 0, 0, 0, 763, 764,
4196
- 3, 96, 48, 0, 764, 765, 5, 95, 0, 0, 765, 766, 3, 94, 47, 0, 766, 93, 1, 0, 0, 0, 767,
4197
- 776, 5, 62, 0, 0, 768, 776, 5, 86, 0, 0, 769, 776, 5, 38, 0, 0, 770, 776, 5, 111, 0, 0,
4198
- 771, 776, 5, 112, 0, 0, 772, 776, 5, 113, 0, 0, 773, 776, 5, 109, 0, 0, 774, 776, 5,
4199
- 110, 0, 0, 775, 767, 1, 0, 0, 0, 775, 768, 1, 0, 0, 0, 775, 769, 1, 0, 0, 0, 775, 770,
4200
- 1, 0, 0, 0, 775, 771, 1, 0, 0, 0, 775, 772, 1, 0, 0, 0, 775, 773, 1, 0, 0, 0, 775, 774,
4201
- 1, 0, 0, 0, 776, 95, 1, 0, 0, 0, 777, 783, 5, 114, 0, 0, 778, 783, 5, 115, 0, 0, 779, 783,
4202
- 5, 116, 0, 0, 780, 783, 5, 117, 0, 0, 781, 783, 3, 106, 53, 0, 782, 777, 1, 0, 0, 0, 782,
4203
- 778, 1, 0, 0, 0, 782, 779, 1, 0, 0, 0, 782, 780, 1, 0, 0, 0, 782, 781, 1, 0, 0, 0, 783,
4204
- 97, 1, 0, 0, 0, 784, 789, 3, 96, 48, 0, 785, 786, 5, 4, 0, 0, 786, 788, 3, 96, 48, 0, 787,
4205
- 785, 1, 0, 0, 0, 788, 791, 1, 0, 0, 0, 789, 787, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790,
4206
- 99, 1, 0, 0, 0, 791, 789, 1, 0, 0, 0, 792, 793, 3, 96, 48, 0, 793, 101, 1, 0, 0, 0, 794,
4207
- 795, 3, 98, 49, 0, 795, 103, 1, 0, 0, 0, 796, 797, 3, 98, 49, 0, 797, 105, 1, 0, 0, 0,
4208
- 798, 799, 7, 7, 0, 0, 799, 107, 1, 0, 0, 0, 95, 111, 120, 129, 132, 138, 145, 157, 162,
4209
- 172, 176, 183, 187, 190, 193, 196, 199, 202, 208, 211, 218, 226, 241, 245, 249,
4210
- 253, 257, 260, 264, 267, 274, 282, 289, 302, 307, 311, 317, 323, 333, 346, 350,
4211
- 360, 367, 376, 382, 386, 392, 396, 400, 404, 414, 426, 444, 456, 461, 467, 475,
4212
- 482, 501, 507, 517, 525, 527, 532, 538, 547, 553, 561, 569, 575, 579, 584, 589,
4213
- 597, 608, 610, 617, 624, 627, 635, 639, 648, 652, 670, 693, 717, 720, 727, 730,
4214
- 736, 742, 750, 758, 775, 782, 789
3973
+ 52, 2, 53, 7, 53, 2, 54, 7, 54, 1, 0, 5, 0, 112, 8, 0, 10, 0, 12, 0, 115, 9, 0, 1, 0, 1, 0,
3974
+ 1, 1, 1, 1, 1, 2, 1, 2, 3, 2, 123, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 132,
3975
+ 8, 3, 1, 4, 3, 4, 135, 8, 4, 1, 4, 1, 4, 1, 5, 1, 5, 3, 5, 141, 8, 5, 1, 5, 1, 5, 1, 5, 5, 5,
3976
+ 146, 8, 5, 10, 5, 12, 5, 149, 9, 5, 1, 6, 1, 6, 3, 6, 153, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1,
3977
+ 6, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 164, 8, 7, 10, 7, 12, 7, 167, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8,
3978
+ 1, 8, 3, 8, 174, 8, 8, 1, 8, 5, 8, 177, 8, 8, 10, 8, 12, 8, 180, 9, 8, 1, 9, 1, 9, 1, 10, 1,
3979
+ 10, 1, 10, 1, 10, 1, 10, 3, 10, 189, 8, 10, 1, 11, 1, 11, 3, 11, 193, 8, 11, 1, 11, 1, 11,
3980
+ 1, 11, 5, 11, 198, 8, 11, 10, 11, 12, 11, 201, 9, 11, 1, 11, 3, 11, 204, 8, 11, 1, 11,
3981
+ 3, 11, 207, 8, 11, 1, 11, 3, 11, 210, 8, 11, 1, 11, 3, 11, 213, 8, 11, 1, 11, 3, 11, 216,
3982
+ 8, 11, 1, 11, 3, 11, 219, 8, 11, 1, 12, 1, 12, 1, 13, 1, 13, 3, 13, 225, 8, 13, 1, 13, 3,
3983
+ 13, 228, 8, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 235, 8, 13, 1, 14, 1, 14, 1, 14,
3984
+ 1, 14, 5, 14, 241, 8, 14, 10, 14, 12, 14, 244, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15,
3985
+ 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 256, 8, 15, 10, 15, 12, 15, 259, 9, 15, 1, 16,
3986
+ 3, 16, 262, 8, 16, 1, 16, 1, 16, 3, 16, 266, 8, 16, 1, 16, 1, 16, 3, 16, 270, 8, 16, 1,
3987
+ 16, 1, 16, 3, 16, 274, 8, 16, 1, 16, 3, 16, 277, 8, 16, 1, 17, 1, 17, 3, 17, 281, 8, 17,
3988
+ 1, 17, 3, 17, 284, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 291, 8, 18, 1, 19, 1,
3989
+ 19, 1, 19, 1, 20, 1, 20, 1, 20, 3, 20, 299, 8, 20, 1, 20, 1, 20, 1, 20, 5, 20, 304, 8, 20,
3990
+ 10, 20, 12, 20, 307, 9, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 5, 22,
3991
+ 317, 8, 22, 10, 22, 12, 22, 320, 9, 22, 1, 23, 1, 23, 3, 23, 324, 8, 23, 1, 23, 1, 23,
3992
+ 3, 23, 328, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 334, 8, 24, 1, 25, 1, 25, 1, 25, 1,
3993
+ 25, 3, 25, 340, 8, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 348, 8, 26, 10,
3994
+ 26, 12, 26, 351, 9, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 361,
3995
+ 8, 27, 10, 27, 12, 27, 364, 9, 27, 1, 27, 3, 27, 367, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28,
3996
+ 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 377, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30,
3997
+ 384, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 391, 8, 30, 10, 30, 12, 30, 394,
3998
+ 9, 30, 1, 30, 1, 30, 1, 30, 3, 30, 399, 8, 30, 1, 31, 1, 31, 3, 31, 403, 8, 31, 1, 32, 1,
3999
+ 32, 1, 32, 1, 32, 3, 32, 409, 8, 32, 1, 32, 1, 32, 3, 32, 413, 8, 32, 1, 32, 1, 32, 3, 32,
4000
+ 417, 8, 32, 1, 33, 1, 33, 3, 33, 421, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5,
4001
+ 33, 429, 8, 33, 10, 33, 12, 33, 432, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1,
4002
+ 33, 5, 33, 441, 8, 33, 10, 33, 12, 33, 444, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1,
4003
+ 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 459, 8, 33, 10, 33, 12, 33,
4004
+ 462, 9, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 471, 8, 33, 10, 33,
4005
+ 12, 33, 474, 9, 33, 1, 33, 1, 33, 3, 33, 478, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34,
4006
+ 484, 8, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 492, 8, 34, 1, 34, 1, 34, 1,
4007
+ 34, 1, 34, 1, 34, 3, 34, 499, 8, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1,
4008
+ 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 518, 8, 34, 1,
4009
+ 35, 1, 35, 1, 35, 1, 35, 3, 35, 524, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1,
4010
+ 37, 1, 37, 3, 37, 534, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 542, 8, 37,
4011
+ 10, 37, 12, 37, 545, 9, 37, 1, 38, 1, 38, 3, 38, 549, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39,
4012
+ 3, 39, 555, 8, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 562, 8, 39, 10, 39, 12, 39,
4013
+ 565, 9, 39, 1, 39, 1, 39, 1, 39, 3, 39, 570, 8, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1,
4014
+ 39, 3, 39, 578, 8, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 586, 8, 39, 1, 39,
4015
+ 1, 39, 1, 39, 1, 39, 3, 39, 592, 8, 39, 1, 39, 1, 39, 3, 39, 596, 8, 39, 1, 39, 1, 39, 1,
4016
+ 39, 3, 39, 601, 8, 39, 1, 39, 1, 39, 1, 39, 3, 39, 606, 8, 39, 1, 40, 1, 40, 1, 41, 1, 41,
4017
+ 1, 41, 1, 41, 3, 41, 614, 8, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41,
4018
+ 1, 41, 5, 41, 625, 8, 41, 10, 41, 12, 41, 628, 9, 41, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42,
4019
+ 634, 8, 42, 1, 42, 1, 42, 1, 42, 5, 42, 639, 8, 42, 10, 42, 12, 42, 642, 9, 42, 3, 42,
4020
+ 644, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 650, 8, 42, 11, 42, 12, 42, 651, 1, 42,
4021
+ 1, 42, 3, 42, 656, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 663, 8, 42, 11, 42,
4022
+ 12, 42, 664, 1, 42, 1, 42, 3, 42, 669, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42,
4023
+ 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 685, 8, 42, 10, 42, 12, 42,
4024
+ 688, 9, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42,
4025
+ 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 710, 8, 42, 1, 43,
4026
+ 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45,
4027
+ 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 734, 8, 45, 1, 45, 3, 45,
4028
+ 737, 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 744, 8, 45, 1, 45, 3, 45, 747, 8,
4029
+ 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 753, 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 759,
4030
+ 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 767, 8, 45, 1, 46, 1, 46, 1, 46,
4031
+ 1, 46, 5, 46, 773, 8, 46, 10, 46, 12, 46, 776, 9, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47,
4032
+ 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 792, 8, 48, 1, 49,
4033
+ 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 799, 8, 49, 1, 50, 1, 50, 1, 50, 5, 50, 804, 8, 50, 10,
4034
+ 50, 12, 50, 807, 9, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 0,
4035
+ 3, 30, 74, 82, 55, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36,
4036
+ 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
4037
+ 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 0, 8, 3, 0, 36, 36, 52,
4038
+ 52, 87, 87, 2, 0, 6, 6, 30, 30, 2, 0, 10, 10, 29, 29, 2, 0, 39, 39, 57, 57, 1, 0, 95, 100,
4039
+ 1, 0, 101, 102, 1, 0, 103, 105, 22, 0, 5, 6, 10, 10, 12, 15, 18, 18, 20, 21, 24, 27, 29,
4040
+ 29, 31, 31, 38, 40, 43, 43, 46, 46, 50, 51, 56, 58, 60, 60, 63, 66, 70, 70, 75, 75, 78,
4041
+ 78, 80, 80, 82, 86, 88, 88, 90, 91, 912, 0, 113, 1, 0, 0, 0, 2, 118, 1, 0, 0, 0, 4, 120,
4042
+ 1, 0, 0, 0, 6, 131, 1, 0, 0, 0, 8, 134, 1, 0, 0, 0, 10, 138, 1, 0, 0, 0, 12, 150, 1, 0, 0,
4043
+ 0, 14, 159, 1, 0, 0, 0, 16, 170, 1, 0, 0, 0, 18, 181, 1, 0, 0, 0, 20, 188, 1, 0, 0, 0, 22,
4044
+ 190, 1, 0, 0, 0, 24, 220, 1, 0, 0, 0, 26, 234, 1, 0, 0, 0, 28, 236, 1, 0, 0, 0, 30, 245,
4045
+ 1, 0, 0, 0, 32, 276, 1, 0, 0, 0, 34, 278, 1, 0, 0, 0, 36, 290, 1, 0, 0, 0, 38, 292, 1, 0,
4046
+ 0, 0, 40, 295, 1, 0, 0, 0, 42, 308, 1, 0, 0, 0, 44, 311, 1, 0, 0, 0, 46, 321, 1, 0, 0, 0,
4047
+ 48, 329, 1, 0, 0, 0, 50, 335, 1, 0, 0, 0, 52, 343, 1, 0, 0, 0, 54, 354, 1, 0, 0, 0, 56, 368,
4048
+ 1, 0, 0, 0, 58, 372, 1, 0, 0, 0, 60, 378, 1, 0, 0, 0, 62, 402, 1, 0, 0, 0, 64, 404, 1, 0,
4049
+ 0, 0, 66, 420, 1, 0, 0, 0, 68, 479, 1, 0, 0, 0, 70, 519, 1, 0, 0, 0, 72, 527, 1, 0, 0, 0,
4050
+ 74, 533, 1, 0, 0, 0, 76, 546, 1, 0, 0, 0, 78, 605, 1, 0, 0, 0, 80, 607, 1, 0, 0, 0, 82, 613,
4051
+ 1, 0, 0, 0, 84, 709, 1, 0, 0, 0, 86, 711, 1, 0, 0, 0, 88, 716, 1, 0, 0, 0, 90, 766, 1, 0,
4052
+ 0, 0, 92, 768, 1, 0, 0, 0, 94, 779, 1, 0, 0, 0, 96, 791, 1, 0, 0, 0, 98, 798, 1, 0, 0, 0,
4053
+ 100, 800, 1, 0, 0, 0, 102, 808, 1, 0, 0, 0, 104, 810, 1, 0, 0, 0, 106, 812, 1, 0, 0, 0,
4054
+ 108, 814, 1, 0, 0, 0, 110, 112, 3, 2, 1, 0, 111, 110, 1, 0, 0, 0, 112, 115, 1, 0, 0, 0,
4055
+ 113, 111, 1, 0, 0, 0, 113, 114, 1, 0, 0, 0, 114, 116, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0,
4056
+ 116, 117, 5, 0, 0, 1, 117, 1, 1, 0, 0, 0, 118, 119, 3, 4, 2, 0, 119, 3, 1, 0, 0, 0, 120,
4057
+ 122, 3, 6, 3, 0, 121, 123, 5, 108, 0, 0, 122, 121, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 123,
4058
+ 5, 1, 0, 0, 0, 124, 132, 3, 8, 4, 0, 125, 132, 3, 50, 25, 0, 126, 132, 3, 54, 27, 0, 127,
4059
+ 132, 3, 58, 29, 0, 128, 132, 3, 60, 30, 0, 129, 132, 3, 68, 34, 0, 130, 132, 3, 70, 35,
4060
+ 0, 131, 124, 1, 0, 0, 0, 131, 125, 1, 0, 0, 0, 131, 126, 1, 0, 0, 0, 131, 127, 1, 0, 0,
4061
+ 0, 131, 128, 1, 0, 0, 0, 131, 129, 1, 0, 0, 0, 131, 130, 1, 0, 0, 0, 132, 7, 1, 0, 0, 0,
4062
+ 133, 135, 3, 10, 5, 0, 134, 133, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 136, 1, 0, 0, 0,
4063
+ 136, 137, 3, 16, 8, 0, 137, 9, 1, 0, 0, 0, 138, 140, 5, 94, 0, 0, 139, 141, 5, 72, 0, 0,
4064
+ 140, 139, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 147, 3, 12, 6, 0,
4065
+ 143, 144, 5, 1, 0, 0, 144, 146, 3, 12, 6, 0, 145, 143, 1, 0, 0, 0, 146, 149, 1, 0, 0, 0,
4066
+ 147, 145, 1, 0, 0, 0, 147, 148, 1, 0, 0, 0, 148, 11, 1, 0, 0, 0, 149, 147, 1, 0, 0, 0, 150,
4067
+ 152, 3, 98, 49, 0, 151, 153, 3, 14, 7, 0, 152, 151, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153,
4068
+ 154, 1, 0, 0, 0, 154, 155, 5, 9, 0, 0, 155, 156, 5, 2, 0, 0, 156, 157, 3, 8, 4, 0, 157,
4069
+ 158, 5, 3, 0, 0, 158, 13, 1, 0, 0, 0, 159, 160, 5, 2, 0, 0, 160, 165, 3, 98, 49, 0, 161,
4070
+ 162, 5, 1, 0, 0, 162, 164, 3, 98, 49, 0, 163, 161, 1, 0, 0, 0, 164, 167, 1, 0, 0, 0, 165,
4071
+ 163, 1, 0, 0, 0, 165, 166, 1, 0, 0, 0, 166, 168, 1, 0, 0, 0, 167, 165, 1, 0, 0, 0, 168,
4072
+ 169, 5, 3, 0, 0, 169, 15, 1, 0, 0, 0, 170, 178, 3, 18, 9, 0, 171, 173, 7, 0, 0, 0, 172,
4073
+ 174, 5, 6, 0, 0, 173, 172, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175,
4074
+ 177, 3, 18, 9, 0, 176, 171, 1, 0, 0, 0, 177, 180, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178,
4075
+ 179, 1, 0, 0, 0, 179, 17, 1, 0, 0, 0, 180, 178, 1, 0, 0, 0, 181, 182, 3, 20, 10, 0, 182,
4076
+ 19, 1, 0, 0, 0, 183, 189, 3, 22, 11, 0, 184, 185, 5, 2, 0, 0, 185, 186, 3, 8, 4, 0, 186,
4077
+ 187, 5, 3, 0, 0, 187, 189, 1, 0, 0, 0, 188, 183, 1, 0, 0, 0, 188, 184, 1, 0, 0, 0, 189,
4078
+ 21, 1, 0, 0, 0, 190, 192, 5, 76, 0, 0, 191, 193, 3, 24, 12, 0, 192, 191, 1, 0, 0, 0, 192,
4079
+ 193, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 199, 3, 26, 13, 0, 195, 196, 5, 1, 0, 0, 196,
4080
+ 198, 3, 26, 13, 0, 197, 195, 1, 0, 0, 0, 198, 201, 1, 0, 0, 0, 199, 197, 1, 0, 0, 0, 199,
4081
+ 200, 1, 0, 0, 0, 200, 203, 1, 0, 0, 0, 201, 199, 1, 0, 0, 0, 202, 204, 3, 28, 14, 0, 203,
4082
+ 202, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 206, 1, 0, 0, 0, 205, 207, 3, 38, 19, 0, 206,
4083
+ 205, 1, 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 209, 1, 0, 0, 0, 208, 210, 3, 40, 20, 0, 209,
4084
+ 208, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 212, 1, 0, 0, 0, 211, 213, 3, 42, 21, 0, 212,
4085
+ 211, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 215, 1, 0, 0, 0, 214, 216, 3, 44, 22, 0, 215,
4086
+ 214, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 218, 1, 0, 0, 0, 217, 219, 3, 48, 24, 0, 218,
4087
+ 217, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, 219, 23, 1, 0, 0, 0, 220, 221, 7, 1, 0, 0, 221, 25,
4088
+ 1, 0, 0, 0, 222, 227, 3, 72, 36, 0, 223, 225, 5, 9, 0, 0, 224, 223, 1, 0, 0, 0, 224, 225,
4089
+ 1, 0, 0, 0, 225, 226, 1, 0, 0, 0, 226, 228, 3, 98, 49, 0, 227, 224, 1, 0, 0, 0, 227, 228,
4090
+ 1, 0, 0, 0, 228, 235, 1, 0, 0, 0, 229, 230, 3, 100, 50, 0, 230, 231, 5, 4, 0, 0, 231, 232,
4091
+ 5, 103, 0, 0, 232, 235, 1, 0, 0, 0, 233, 235, 5, 103, 0, 0, 234, 222, 1, 0, 0, 0, 234,
4092
+ 229, 1, 0, 0, 0, 234, 233, 1, 0, 0, 0, 235, 27, 1, 0, 0, 0, 236, 237, 5, 42, 0, 0, 237,
4093
+ 242, 3, 30, 15, 0, 238, 239, 5, 1, 0, 0, 239, 241, 3, 30, 15, 0, 240, 238, 1, 0, 0, 0,
4094
+ 241, 244, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 242, 243, 1, 0, 0, 0, 243, 29, 1, 0, 0, 0, 244,
4095
+ 242, 1, 0, 0, 0, 245, 246, 6, 15, -1, 0, 246, 247, 3, 34, 17, 0, 247, 257, 1, 0, 0, 0,
4096
+ 248, 249, 10, 2, 0, 0, 249, 250, 3, 32, 16, 0, 250, 251, 5, 55, 0, 0, 251, 252, 3, 30,
4097
+ 15, 0, 252, 253, 5, 67, 0, 0, 253, 254, 3, 72, 36, 0, 254, 256, 1, 0, 0, 0, 255, 248,
4098
+ 1, 0, 0, 0, 256, 259, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 258, 1, 0, 0, 0, 258, 31, 1,
4099
+ 0, 0, 0, 259, 257, 1, 0, 0, 0, 260, 262, 5, 48, 0, 0, 261, 260, 1, 0, 0, 0, 261, 262, 1,
4100
+ 0, 0, 0, 262, 277, 1, 0, 0, 0, 263, 265, 5, 58, 0, 0, 264, 266, 5, 70, 0, 0, 265, 264,
4101
+ 1, 0, 0, 0, 265, 266, 1, 0, 0, 0, 266, 277, 1, 0, 0, 0, 267, 269, 5, 75, 0, 0, 268, 270,
4102
+ 5, 70, 0, 0, 269, 268, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 277, 1, 0, 0, 0, 271, 273,
4103
+ 5, 43, 0, 0, 272, 274, 5, 70, 0, 0, 273, 272, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 277,
4104
+ 1, 0, 0, 0, 275, 277, 5, 24, 0, 0, 276, 261, 1, 0, 0, 0, 276, 263, 1, 0, 0, 0, 276, 267,
4105
+ 1, 0, 0, 0, 276, 271, 1, 0, 0, 0, 276, 275, 1, 0, 0, 0, 277, 33, 1, 0, 0, 0, 278, 283, 3,
4106
+ 36, 18, 0, 279, 281, 5, 9, 0, 0, 280, 279, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 282,
4107
+ 1, 0, 0, 0, 282, 284, 3, 98, 49, 0, 283, 280, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 35,
4108
+ 1, 0, 0, 0, 285, 291, 3, 104, 52, 0, 286, 287, 5, 2, 0, 0, 287, 288, 3, 8, 4, 0, 288, 289,
4109
+ 5, 3, 0, 0, 289, 291, 1, 0, 0, 0, 290, 285, 1, 0, 0, 0, 290, 286, 1, 0, 0, 0, 291, 37, 1,
4110
+ 0, 0, 0, 292, 293, 5, 93, 0, 0, 293, 294, 3, 72, 36, 0, 294, 39, 1, 0, 0, 0, 295, 296,
4111
+ 5, 44, 0, 0, 296, 298, 5, 15, 0, 0, 297, 299, 3, 24, 12, 0, 298, 297, 1, 0, 0, 0, 298,
4112
+ 299, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300, 305, 3, 72, 36, 0, 301, 302, 5, 1, 0, 0, 302,
4113
+ 304, 3, 72, 36, 0, 303, 301, 1, 0, 0, 0, 304, 307, 1, 0, 0, 0, 305, 303, 1, 0, 0, 0, 305,
4114
+ 306, 1, 0, 0, 0, 306, 41, 1, 0, 0, 0, 307, 305, 1, 0, 0, 0, 308, 309, 5, 45, 0, 0, 309,
4115
+ 310, 3, 72, 36, 0, 310, 43, 1, 0, 0, 0, 311, 312, 5, 69, 0, 0, 312, 313, 5, 15, 0, 0, 313,
4116
+ 318, 3, 46, 23, 0, 314, 315, 5, 1, 0, 0, 315, 317, 3, 46, 23, 0, 316, 314, 1, 0, 0, 0,
4117
+ 317, 320, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 318, 319, 1, 0, 0, 0, 319, 45, 1, 0, 0, 0, 320,
4118
+ 318, 1, 0, 0, 0, 321, 323, 3, 72, 36, 0, 322, 324, 7, 2, 0, 0, 323, 322, 1, 0, 0, 0, 323,
4119
+ 324, 1, 0, 0, 0, 324, 327, 1, 0, 0, 0, 325, 326, 5, 64, 0, 0, 326, 328, 7, 3, 0, 0, 327,
4120
+ 325, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 47, 1, 0, 0, 0, 329, 330, 5, 60, 0, 0, 330,
4121
+ 333, 3, 72, 36, 0, 331, 332, 5, 66, 0, 0, 332, 334, 3, 72, 36, 0, 333, 331, 1, 0, 0, 0,
4122
+ 333, 334, 1, 0, 0, 0, 334, 49, 1, 0, 0, 0, 335, 336, 5, 49, 0, 0, 336, 337, 5, 53, 0, 0,
4123
+ 337, 339, 3, 104, 52, 0, 338, 340, 3, 52, 26, 0, 339, 338, 1, 0, 0, 0, 339, 340, 1, 0,
4124
+ 0, 0, 340, 341, 1, 0, 0, 0, 341, 342, 3, 8, 4, 0, 342, 51, 1, 0, 0, 0, 343, 344, 5, 2, 0,
4125
+ 0, 344, 349, 3, 102, 51, 0, 345, 346, 5, 1, 0, 0, 346, 348, 3, 102, 51, 0, 347, 345,
4126
+ 1, 0, 0, 0, 348, 351, 1, 0, 0, 0, 349, 347, 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 352,
4127
+ 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 352, 353, 5, 3, 0, 0, 353, 53, 1, 0, 0, 0, 354, 355, 5,
4128
+ 89, 0, 0, 355, 356, 3, 104, 52, 0, 356, 357, 5, 77, 0, 0, 357, 362, 3, 56, 28, 0, 358,
4129
+ 359, 5, 1, 0, 0, 359, 361, 3, 56, 28, 0, 360, 358, 1, 0, 0, 0, 361, 364, 1, 0, 0, 0, 362,
4130
+ 360, 1, 0, 0, 0, 362, 363, 1, 0, 0, 0, 363, 366, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 365,
4131
+ 367, 3, 38, 19, 0, 366, 365, 1, 0, 0, 0, 366, 367, 1, 0, 0, 0, 367, 55, 1, 0, 0, 0, 368,
4132
+ 369, 3, 102, 51, 0, 369, 370, 5, 95, 0, 0, 370, 371, 3, 72, 36, 0, 371, 57, 1, 0, 0, 0,
4133
+ 372, 373, 5, 28, 0, 0, 373, 374, 5, 42, 0, 0, 374, 376, 3, 104, 52, 0, 375, 377, 3, 38,
4134
+ 19, 0, 376, 375, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 59, 1, 0, 0, 0, 378, 379, 5, 23,
4135
+ 0, 0, 379, 383, 5, 79, 0, 0, 380, 381, 5, 46, 0, 0, 381, 382, 5, 61, 0, 0, 382, 384, 5,
4136
+ 37, 0, 0, 383, 380, 1, 0, 0, 0, 383, 384, 1, 0, 0, 0, 384, 385, 1, 0, 0, 0, 385, 386, 3,
4137
+ 106, 53, 0, 386, 387, 5, 2, 0, 0, 387, 392, 3, 62, 31, 0, 388, 389, 5, 1, 0, 0, 389, 391,
4138
+ 3, 62, 31, 0, 390, 388, 1, 0, 0, 0, 391, 394, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 392, 393,
4139
+ 1, 0, 0, 0, 393, 395, 1, 0, 0, 0, 394, 392, 1, 0, 0, 0, 395, 398, 5, 3, 0, 0, 396, 397,
4140
+ 5, 94, 0, 0, 397, 399, 3, 92, 46, 0, 398, 396, 1, 0, 0, 0, 398, 399, 1, 0, 0, 0, 399, 61,
4141
+ 1, 0, 0, 0, 400, 403, 3, 64, 32, 0, 401, 403, 3, 66, 33, 0, 402, 400, 1, 0, 0, 0, 402,
4142
+ 401, 1, 0, 0, 0, 403, 63, 1, 0, 0, 0, 404, 405, 3, 102, 51, 0, 405, 408, 3, 90, 45, 0,
4143
+ 406, 407, 5, 61, 0, 0, 407, 409, 5, 62, 0, 0, 408, 406, 1, 0, 0, 0, 408, 409, 1, 0, 0,
4144
+ 0, 409, 412, 1, 0, 0, 0, 410, 411, 5, 27, 0, 0, 411, 413, 3, 72, 36, 0, 412, 410, 1, 0,
4145
+ 0, 0, 412, 413, 1, 0, 0, 0, 413, 416, 1, 0, 0, 0, 414, 415, 5, 71, 0, 0, 415, 417, 5, 56,
4146
+ 0, 0, 416, 414, 1, 0, 0, 0, 416, 417, 1, 0, 0, 0, 417, 65, 1, 0, 0, 0, 418, 419, 5, 22,
4147
+ 0, 0, 419, 421, 3, 98, 49, 0, 420, 418, 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 477, 1,
4148
+ 0, 0, 0, 422, 423, 5, 71, 0, 0, 423, 424, 5, 56, 0, 0, 424, 425, 5, 2, 0, 0, 425, 430,
4149
+ 3, 102, 51, 0, 426, 427, 5, 1, 0, 0, 427, 429, 3, 102, 51, 0, 428, 426, 1, 0, 0, 0, 429,
4150
+ 432, 1, 0, 0, 0, 430, 428, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 433, 1, 0, 0, 0, 432,
4151
+ 430, 1, 0, 0, 0, 433, 434, 5, 3, 0, 0, 434, 478, 1, 0, 0, 0, 435, 436, 5, 88, 0, 0, 436,
4152
+ 437, 5, 2, 0, 0, 437, 442, 3, 102, 51, 0, 438, 439, 5, 1, 0, 0, 439, 441, 3, 102, 51,
4153
+ 0, 440, 438, 1, 0, 0, 0, 441, 444, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 442, 443, 1, 0, 0,
4154
+ 0, 443, 445, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 445, 446, 5, 3, 0, 0, 446, 478, 1, 0, 0,
4155
+ 0, 447, 448, 5, 19, 0, 0, 448, 449, 5, 2, 0, 0, 449, 450, 3, 72, 36, 0, 450, 451, 5, 3,
4156
+ 0, 0, 451, 478, 1, 0, 0, 0, 452, 453, 5, 41, 0, 0, 453, 454, 5, 56, 0, 0, 454, 455, 5,
4157
+ 2, 0, 0, 455, 460, 3, 102, 51, 0, 456, 457, 5, 1, 0, 0, 457, 459, 3, 102, 51, 0, 458,
4158
+ 456, 1, 0, 0, 0, 459, 462, 1, 0, 0, 0, 460, 458, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461,
4159
+ 463, 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 463, 464, 5, 3, 0, 0, 464, 465, 5, 73, 0, 0, 465,
4160
+ 466, 3, 104, 52, 0, 466, 467, 5, 2, 0, 0, 467, 472, 3, 102, 51, 0, 468, 469, 5, 1, 0,
4161
+ 0, 469, 471, 3, 102, 51, 0, 470, 468, 1, 0, 0, 0, 471, 474, 1, 0, 0, 0, 472, 470, 1, 0,
4162
+ 0, 0, 472, 473, 1, 0, 0, 0, 473, 475, 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 475, 476, 5, 3,
4163
+ 0, 0, 476, 478, 1, 0, 0, 0, 477, 422, 1, 0, 0, 0, 477, 435, 1, 0, 0, 0, 477, 447, 1, 0,
4164
+ 0, 0, 477, 452, 1, 0, 0, 0, 478, 67, 1, 0, 0, 0, 479, 480, 5, 7, 0, 0, 480, 483, 5, 79,
4165
+ 0, 0, 481, 482, 5, 46, 0, 0, 482, 484, 5, 37, 0, 0, 483, 481, 1, 0, 0, 0, 483, 484, 1,
4166
+ 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 517, 3, 104, 52, 0, 486, 487, 5, 5, 0, 0, 487, 491,
4167
+ 5, 21, 0, 0, 488, 489, 5, 46, 0, 0, 489, 490, 5, 61, 0, 0, 490, 492, 5, 37, 0, 0, 491,
4168
+ 488, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 518, 3, 64, 32, 0, 494,
4169
+ 495, 5, 32, 0, 0, 495, 498, 5, 21, 0, 0, 496, 497, 5, 46, 0, 0, 497, 499, 5, 37, 0, 0,
4170
+ 498, 496, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 500, 1, 0, 0, 0, 500, 518, 3, 102, 51,
4171
+ 0, 501, 502, 5, 74, 0, 0, 502, 503, 5, 85, 0, 0, 503, 518, 3, 106, 53, 0, 504, 505, 5,
4172
+ 7, 0, 0, 505, 506, 5, 21, 0, 0, 506, 507, 3, 102, 51, 0, 507, 508, 5, 77, 0, 0, 508, 509,
4173
+ 5, 27, 0, 0, 509, 510, 3, 72, 36, 0, 510, 518, 1, 0, 0, 0, 511, 512, 5, 7, 0, 0, 512, 513,
4174
+ 5, 21, 0, 0, 513, 514, 3, 102, 51, 0, 514, 515, 5, 32, 0, 0, 515, 516, 5, 27, 0, 0, 516,
4175
+ 518, 1, 0, 0, 0, 517, 486, 1, 0, 0, 0, 517, 494, 1, 0, 0, 0, 517, 501, 1, 0, 0, 0, 517,
4176
+ 504, 1, 0, 0, 0, 517, 511, 1, 0, 0, 0, 518, 69, 1, 0, 0, 0, 519, 520, 5, 32, 0, 0, 520,
4177
+ 523, 5, 79, 0, 0, 521, 522, 5, 46, 0, 0, 522, 524, 5, 37, 0, 0, 523, 521, 1, 0, 0, 0, 523,
4178
+ 524, 1, 0, 0, 0, 524, 525, 1, 0, 0, 0, 525, 526, 3, 104, 52, 0, 526, 71, 1, 0, 0, 0, 527,
4179
+ 528, 3, 74, 37, 0, 528, 73, 1, 0, 0, 0, 529, 530, 6, 37, -1, 0, 530, 534, 3, 76, 38, 0,
4180
+ 531, 532, 5, 61, 0, 0, 532, 534, 3, 74, 37, 3, 533, 529, 1, 0, 0, 0, 533, 531, 1, 0, 0,
4181
+ 0, 534, 543, 1, 0, 0, 0, 535, 536, 10, 2, 0, 0, 536, 537, 5, 8, 0, 0, 537, 542, 3, 74,
4182
+ 37, 3, 538, 539, 10, 1, 0, 0, 539, 540, 5, 68, 0, 0, 540, 542, 3, 74, 37, 2, 541, 535,
4183
+ 1, 0, 0, 0, 541, 538, 1, 0, 0, 0, 542, 545, 1, 0, 0, 0, 543, 541, 1, 0, 0, 0, 543, 544,
4184
+ 1, 0, 0, 0, 544, 75, 1, 0, 0, 0, 545, 543, 1, 0, 0, 0, 546, 548, 3, 82, 41, 0, 547, 549,
4185
+ 3, 78, 39, 0, 548, 547, 1, 0, 0, 0, 548, 549, 1, 0, 0, 0, 549, 77, 1, 0, 0, 0, 550, 551,
4186
+ 3, 80, 40, 0, 551, 552, 3, 82, 41, 0, 552, 606, 1, 0, 0, 0, 553, 555, 5, 61, 0, 0, 554,
4187
+ 553, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 556, 1, 0, 0, 0, 556, 557, 5, 47, 0, 0, 557,
4188
+ 558, 5, 2, 0, 0, 558, 563, 3, 72, 36, 0, 559, 560, 5, 1, 0, 0, 560, 562, 3, 72, 36, 0,
4189
+ 561, 559, 1, 0, 0, 0, 562, 565, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0,
4190
+ 564, 566, 1, 0, 0, 0, 565, 563, 1, 0, 0, 0, 566, 567, 5, 3, 0, 0, 567, 606, 1, 0, 0, 0,
4191
+ 568, 570, 5, 61, 0, 0, 569, 568, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0,
4192
+ 571, 572, 5, 47, 0, 0, 572, 573, 5, 2, 0, 0, 573, 574, 3, 8, 4, 0, 574, 575, 5, 3, 0, 0,
4193
+ 575, 606, 1, 0, 0, 0, 576, 578, 5, 61, 0, 0, 577, 576, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0,
4194
+ 578, 579, 1, 0, 0, 0, 579, 580, 5, 11, 0, 0, 580, 581, 3, 82, 41, 0, 581, 582, 5, 8, 0,
4195
+ 0, 582, 583, 3, 82, 41, 0, 583, 606, 1, 0, 0, 0, 584, 586, 5, 61, 0, 0, 585, 584, 1, 0,
4196
+ 0, 0, 585, 586, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 588, 5, 59, 0, 0, 588, 591, 3, 82,
4197
+ 41, 0, 589, 590, 5, 35, 0, 0, 590, 592, 3, 82, 41, 0, 591, 589, 1, 0, 0, 0, 591, 592,
4198
+ 1, 0, 0, 0, 592, 606, 1, 0, 0, 0, 593, 595, 5, 54, 0, 0, 594, 596, 5, 61, 0, 0, 595, 594,
4199
+ 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 606, 5, 62, 0, 0, 598, 600,
4200
+ 5, 54, 0, 0, 599, 601, 5, 61, 0, 0, 600, 599, 1, 0, 0, 0, 600, 601, 1, 0, 0, 0, 601, 602,
4201
+ 1, 0, 0, 0, 602, 603, 5, 30, 0, 0, 603, 604, 5, 42, 0, 0, 604, 606, 3, 82, 41, 0, 605,
4202
+ 550, 1, 0, 0, 0, 605, 554, 1, 0, 0, 0, 605, 569, 1, 0, 0, 0, 605, 577, 1, 0, 0, 0, 605,
4203
+ 585, 1, 0, 0, 0, 605, 593, 1, 0, 0, 0, 605, 598, 1, 0, 0, 0, 606, 79, 1, 0, 0, 0, 607, 608,
4204
+ 7, 4, 0, 0, 608, 81, 1, 0, 0, 0, 609, 610, 6, 41, -1, 0, 610, 614, 3, 84, 42, 0, 611, 612,
4205
+ 7, 5, 0, 0, 612, 614, 3, 82, 41, 4, 613, 609, 1, 0, 0, 0, 613, 611, 1, 0, 0, 0, 614, 626,
4206
+ 1, 0, 0, 0, 615, 616, 10, 3, 0, 0, 616, 617, 7, 6, 0, 0, 617, 625, 3, 82, 41, 4, 618, 619,
4207
+ 10, 2, 0, 0, 619, 620, 7, 5, 0, 0, 620, 625, 3, 82, 41, 3, 621, 622, 10, 1, 0, 0, 622,
4208
+ 623, 5, 106, 0, 0, 623, 625, 3, 82, 41, 2, 624, 615, 1, 0, 0, 0, 624, 618, 1, 0, 0, 0,
4209
+ 624, 621, 1, 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0,
4210
+ 627, 83, 1, 0, 0, 0, 628, 626, 1, 0, 0, 0, 629, 710, 3, 96, 48, 0, 630, 631, 3, 100, 50,
4211
+ 0, 631, 643, 5, 2, 0, 0, 632, 634, 3, 24, 12, 0, 633, 632, 1, 0, 0, 0, 633, 634, 1, 0,
4212
+ 0, 0, 634, 635, 1, 0, 0, 0, 635, 640, 3, 72, 36, 0, 636, 637, 5, 1, 0, 0, 637, 639, 3,
4213
+ 72, 36, 0, 638, 636, 1, 0, 0, 0, 639, 642, 1, 0, 0, 0, 640, 638, 1, 0, 0, 0, 640, 641,
4214
+ 1, 0, 0, 0, 641, 644, 1, 0, 0, 0, 642, 640, 1, 0, 0, 0, 643, 633, 1, 0, 0, 0, 643, 644,
4215
+ 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 646, 5, 3, 0, 0, 646, 710, 1, 0, 0, 0, 647, 649,
4216
+ 5, 16, 0, 0, 648, 650, 3, 86, 43, 0, 649, 648, 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 649,
4217
+ 1, 0, 0, 0, 651, 652, 1, 0, 0, 0, 652, 655, 1, 0, 0, 0, 653, 654, 5, 33, 0, 0, 654, 656,
4218
+ 3, 72, 36, 0, 655, 653, 1, 0, 0, 0, 655, 656, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 658,
4219
+ 5, 34, 0, 0, 658, 710, 1, 0, 0, 0, 659, 660, 5, 16, 0, 0, 660, 662, 3, 72, 36, 0, 661,
4220
+ 663, 3, 86, 43, 0, 662, 661, 1, 0, 0, 0, 663, 664, 1, 0, 0, 0, 664, 662, 1, 0, 0, 0, 664,
4221
+ 665, 1, 0, 0, 0, 665, 668, 1, 0, 0, 0, 666, 667, 5, 33, 0, 0, 667, 669, 3, 72, 36, 0, 668,
4222
+ 666, 1, 0, 0, 0, 668, 669, 1, 0, 0, 0, 669, 670, 1, 0, 0, 0, 670, 671, 5, 34, 0, 0, 671,
4223
+ 710, 1, 0, 0, 0, 672, 673, 5, 17, 0, 0, 673, 674, 5, 2, 0, 0, 674, 675, 3, 72, 36, 0, 675,
4224
+ 676, 5, 9, 0, 0, 676, 677, 3, 90, 45, 0, 677, 678, 5, 3, 0, 0, 678, 710, 1, 0, 0, 0, 679,
4225
+ 680, 5, 20, 0, 0, 680, 681, 5, 2, 0, 0, 681, 686, 3, 72, 36, 0, 682, 683, 5, 1, 0, 0, 683,
4226
+ 685, 3, 72, 36, 0, 684, 682, 1, 0, 0, 0, 685, 688, 1, 0, 0, 0, 686, 684, 1, 0, 0, 0, 686,
4227
+ 687, 1, 0, 0, 0, 687, 689, 1, 0, 0, 0, 688, 686, 1, 0, 0, 0, 689, 690, 5, 3, 0, 0, 690,
4228
+ 710, 1, 0, 0, 0, 691, 692, 5, 63, 0, 0, 692, 693, 5, 2, 0, 0, 693, 694, 3, 82, 41, 0, 694,
4229
+ 695, 5, 1, 0, 0, 695, 696, 3, 82, 41, 0, 696, 697, 5, 3, 0, 0, 697, 710, 1, 0, 0, 0, 698,
4230
+ 699, 5, 2, 0, 0, 699, 700, 3, 72, 36, 0, 700, 701, 5, 3, 0, 0, 701, 710, 1, 0, 0, 0, 702,
4231
+ 703, 5, 37, 0, 0, 703, 704, 5, 2, 0, 0, 704, 705, 3, 8, 4, 0, 705, 706, 5, 3, 0, 0, 706,
4232
+ 710, 1, 0, 0, 0, 707, 710, 3, 88, 44, 0, 708, 710, 3, 100, 50, 0, 709, 629, 1, 0, 0, 0,
4233
+ 709, 630, 1, 0, 0, 0, 709, 647, 1, 0, 0, 0, 709, 659, 1, 0, 0, 0, 709, 672, 1, 0, 0, 0,
4234
+ 709, 679, 1, 0, 0, 0, 709, 691, 1, 0, 0, 0, 709, 698, 1, 0, 0, 0, 709, 702, 1, 0, 0, 0,
4235
+ 709, 707, 1, 0, 0, 0, 709, 708, 1, 0, 0, 0, 710, 85, 1, 0, 0, 0, 711, 712, 5, 92, 0, 0,
4236
+ 712, 713, 3, 72, 36, 0, 713, 714, 5, 81, 0, 0, 714, 715, 3, 72, 36, 0, 715, 87, 1, 0,
4237
+ 0, 0, 716, 717, 5, 2, 0, 0, 717, 718, 3, 8, 4, 0, 718, 719, 5, 3, 0, 0, 719, 89, 1, 0, 0,
4238
+ 0, 720, 767, 5, 14, 0, 0, 721, 767, 5, 84, 0, 0, 722, 767, 5, 78, 0, 0, 723, 767, 5, 50,
4239
+ 0, 0, 724, 767, 5, 51, 0, 0, 725, 767, 5, 12, 0, 0, 726, 767, 5, 40, 0, 0, 727, 767, 5,
4240
+ 31, 0, 0, 728, 736, 5, 26, 0, 0, 729, 730, 5, 2, 0, 0, 730, 733, 5, 111, 0, 0, 731, 732,
4241
+ 5, 1, 0, 0, 732, 734, 5, 111, 0, 0, 733, 731, 1, 0, 0, 0, 733, 734, 1, 0, 0, 0, 734, 735,
4242
+ 1, 0, 0, 0, 735, 737, 5, 3, 0, 0, 736, 729, 1, 0, 0, 0, 736, 737, 1, 0, 0, 0, 737, 767,
4243
+ 1, 0, 0, 0, 738, 746, 5, 65, 0, 0, 739, 740, 5, 2, 0, 0, 740, 743, 5, 111, 0, 0, 741, 742,
4244
+ 5, 1, 0, 0, 742, 744, 5, 111, 0, 0, 743, 741, 1, 0, 0, 0, 743, 744, 1, 0, 0, 0, 744, 745,
4245
+ 1, 0, 0, 0, 745, 747, 5, 3, 0, 0, 746, 739, 1, 0, 0, 0, 746, 747, 1, 0, 0, 0, 747, 767,
4246
+ 1, 0, 0, 0, 748, 752, 5, 90, 0, 0, 749, 750, 5, 2, 0, 0, 750, 751, 5, 111, 0, 0, 751, 753,
4247
+ 5, 3, 0, 0, 752, 749, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 767, 1, 0, 0, 0, 754, 758,
4248
+ 5, 18, 0, 0, 755, 756, 5, 2, 0, 0, 756, 757, 5, 111, 0, 0, 757, 759, 5, 3, 0, 0, 758, 755,
4249
+ 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759, 767, 1, 0, 0, 0, 760, 767, 5, 80, 0, 0, 761, 767,
4250
+ 5, 25, 0, 0, 762, 767, 5, 82, 0, 0, 763, 767, 5, 83, 0, 0, 764, 767, 5, 13, 0, 0, 765,
4251
+ 767, 5, 91, 0, 0, 766, 720, 1, 0, 0, 0, 766, 721, 1, 0, 0, 0, 766, 722, 1, 0, 0, 0, 766,
4252
+ 723, 1, 0, 0, 0, 766, 724, 1, 0, 0, 0, 766, 725, 1, 0, 0, 0, 766, 726, 1, 0, 0, 0, 766,
4253
+ 727, 1, 0, 0, 0, 766, 728, 1, 0, 0, 0, 766, 738, 1, 0, 0, 0, 766, 748, 1, 0, 0, 0, 766,
4254
+ 754, 1, 0, 0, 0, 766, 760, 1, 0, 0, 0, 766, 761, 1, 0, 0, 0, 766, 762, 1, 0, 0, 0, 766,
4255
+ 763, 1, 0, 0, 0, 766, 764, 1, 0, 0, 0, 766, 765, 1, 0, 0, 0, 767, 91, 1, 0, 0, 0, 768, 769,
4256
+ 5, 2, 0, 0, 769, 774, 3, 94, 47, 0, 770, 771, 5, 1, 0, 0, 771, 773, 3, 94, 47, 0, 772,
4257
+ 770, 1, 0, 0, 0, 773, 776, 1, 0, 0, 0, 774, 772, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775,
4258
+ 777, 1, 0, 0, 0, 776, 774, 1, 0, 0, 0, 777, 778, 5, 3, 0, 0, 778, 93, 1, 0, 0, 0, 779, 780,
4259
+ 3, 98, 49, 0, 780, 781, 5, 95, 0, 0, 781, 782, 3, 96, 48, 0, 782, 95, 1, 0, 0, 0, 783,
4260
+ 792, 5, 62, 0, 0, 784, 792, 5, 86, 0, 0, 785, 792, 5, 38, 0, 0, 786, 792, 5, 111, 0, 0,
4261
+ 787, 792, 5, 112, 0, 0, 788, 792, 5, 113, 0, 0, 789, 792, 5, 109, 0, 0, 790, 792, 5,
4262
+ 110, 0, 0, 791, 783, 1, 0, 0, 0, 791, 784, 1, 0, 0, 0, 791, 785, 1, 0, 0, 0, 791, 786,
4263
+ 1, 0, 0, 0, 791, 787, 1, 0, 0, 0, 791, 788, 1, 0, 0, 0, 791, 789, 1, 0, 0, 0, 791, 790,
4264
+ 1, 0, 0, 0, 792, 97, 1, 0, 0, 0, 793, 799, 5, 114, 0, 0, 794, 799, 5, 115, 0, 0, 795, 799,
4265
+ 5, 116, 0, 0, 796, 799, 5, 117, 0, 0, 797, 799, 3, 108, 54, 0, 798, 793, 1, 0, 0, 0, 798,
4266
+ 794, 1, 0, 0, 0, 798, 795, 1, 0, 0, 0, 798, 796, 1, 0, 0, 0, 798, 797, 1, 0, 0, 0, 799,
4267
+ 99, 1, 0, 0, 0, 800, 805, 3, 98, 49, 0, 801, 802, 5, 4, 0, 0, 802, 804, 3, 98, 49, 0, 803,
4268
+ 801, 1, 0, 0, 0, 804, 807, 1, 0, 0, 0, 805, 803, 1, 0, 0, 0, 805, 806, 1, 0, 0, 0, 806,
4269
+ 101, 1, 0, 0, 0, 807, 805, 1, 0, 0, 0, 808, 809, 3, 98, 49, 0, 809, 103, 1, 0, 0, 0, 810,
4270
+ 811, 3, 100, 50, 0, 811, 105, 1, 0, 0, 0, 812, 813, 3, 100, 50, 0, 813, 107, 1, 0, 0,
4271
+ 0, 814, 815, 7, 7, 0, 0, 815, 109, 1, 0, 0, 0, 97, 113, 122, 131, 134, 140, 147, 152,
4272
+ 165, 173, 178, 188, 192, 199, 203, 206, 209, 212, 215, 218, 224, 227, 234, 242,
4273
+ 257, 261, 265, 269, 273, 276, 280, 283, 290, 298, 305, 318, 323, 327, 333, 339,
4274
+ 349, 362, 366, 376, 383, 392, 398, 402, 408, 412, 416, 420, 430, 442, 460, 472,
4275
+ 477, 483, 491, 498, 517, 523, 533, 541, 543, 548, 554, 563, 569, 577, 585, 591,
4276
+ 595, 600, 605, 613, 624, 626, 633, 640, 643, 651, 655, 664, 668, 686, 709, 733,
4277
+ 736, 743, 746, 752, 758, 766, 774, 791, 798, 805
4215
4278
  ];
4216
4279
  GenericSqlParser.vocabulary = new antlr.Vocabulary(GenericSqlParser.literalNames, GenericSqlParser.symbolicNames, []);
4217
4280
  GenericSqlParser.decisionsToDFA = GenericSqlParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -4594,6 +4657,9 @@ export class NamedQueryContext extends antlr.ParserRuleContext {
4594
4657
  identifier() {
4595
4658
  return this.getRuleContext(0, IdentifierContext);
4596
4659
  }
4660
+ cteColumnList() {
4661
+ return this.getRuleContext(0, CteColumnListContext);
4662
+ }
4597
4663
  get ruleIndex() {
4598
4664
  return GenericSqlParser.RULE_namedQuery;
4599
4665
  }
@@ -4616,6 +4682,38 @@ export class NamedQueryContext extends antlr.ParserRuleContext {
4616
4682
  }
4617
4683
  }
4618
4684
  }
4685
+ export class CteColumnListContext extends antlr.ParserRuleContext {
4686
+ constructor(parent, invokingState) {
4687
+ super(parent, invokingState);
4688
+ }
4689
+ identifier(i) {
4690
+ if (i === undefined) {
4691
+ return this.getRuleContexts(IdentifierContext);
4692
+ }
4693
+ return this.getRuleContext(i, IdentifierContext);
4694
+ }
4695
+ get ruleIndex() {
4696
+ return GenericSqlParser.RULE_cteColumnList;
4697
+ }
4698
+ enterRule(listener) {
4699
+ if (listener.enterCteColumnList) {
4700
+ listener.enterCteColumnList(this);
4701
+ }
4702
+ }
4703
+ exitRule(listener) {
4704
+ if (listener.exitCteColumnList) {
4705
+ listener.exitCteColumnList(this);
4706
+ }
4707
+ }
4708
+ accept(visitor) {
4709
+ if (visitor.visitCteColumnList) {
4710
+ return visitor.visitCteColumnList(this);
4711
+ }
4712
+ else {
4713
+ return visitor.visitChildren(this);
4714
+ }
4715
+ }
4716
+ }
4619
4717
  export class QueryNoWithContext extends antlr.ParserRuleContext {
4620
4718
  constructor(parent, invokingState) {
4621
4719
  super(parent, invokingState);